Lompat ke konten Lompat ke sidebar Lompat ke footer

Apa itu File PEM dan Bagaimana Cara Menggunakannya?

 


PEM adalah format file kontainer yang sering digunakan untuk menyimpan kunci kriptografi. Ini digunakan untuk banyak hal yang berbeda, karena hanya mendefinisikan struktur dan jenis penyandian file yang digunakan untuk menyimpan sedikit data.


Apa itu File PEM?

PEM hanyalah standar; mereka berisi teks, dan formatnya menentukan bahwa file PEM dimulai dengan…


-----BEGIN <type>-----


…dan diakhiri dengan:


-----END <type>-----


Segala sesuatu di antaranya dikodekan base64 ( huruf besar dan kecil, angka, +, dan/ ). Ini membentuk blok data yang dapat digunakan dalam program lain. Satu file PEM dapat berisi banyak blok.


Ini dapat digunakan untuk mewakili semua jenis data, tetapi biasanya digunakan untuk mengkodekan file kunci, seperti kunci RSA yang digunakan untuk SSH, dan sertifikat yang digunakan untuk enkripsi SSL. File PEM akan memberi tahu Anda untuk apa file itu digunakan di header; misalnya, Anda mungkin melihat file PEM dimulai dengan…


-----BEGIN RSA PRIVATE KEY-----


…diikuti oleh rangkaian data yang panjang, yang merupakan kunci privat RSA yang sebenarnya.


File PEM dengan Sertifikat SSL

File PEM digunakan untuk menyimpan sertifikat SSL dan kunci pribadi terkait. Beberapa sertifikat ada dalam rantai SSL lengkap, dan mereka bekerja dalam urutan ini:

  • Sertifikat pengguna akhir, yang ditetapkan ke nama domain Anda oleh otoritas sertifikat (CA). Ini adalah file yang Anda gunakan di nginx dan Apache untuk mengenkripsi HTTPS.
  • Hingga empat sertifikat perantara opsional, diberikan kepada otoritas sertifikat yang lebih kecil oleh otoritas yang lebih tinggi.
  • Sertifikat root, sertifikat tertinggi pada rantai, yang ditandatangani sendiri oleh CA utama.


Dalam praktiknya, setiap sertifikat terdaftar dalam file PEM, menggunakan blok terpisah:

-----BEGIN CERTIFICATE-----

  //end-user

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

  //intermediate

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

  //root

-----END CERTIFICATE-----


Anda akan diberikan file-file ini dari penyedia SSL Anda untuk digunakan di server web Anda. Misalnya, LetsEncrypt's certbotmenghasilkan sertifikat berikut, ditempatkan di /etc/letsencrypt/live/your-domain-name/:


cert.pem chain.pem fullchain.pem privkey.pem


  • cert.pem adalah sertifikat pengguna akhir.
  • chain.pem adalah sisa rantai; dalam hal ini, itu hanya sertifikat root LetsEncrypt.
  • fullchain.pem adalah  cert.pem dan chain.pem digabungkan. Ini adalah file yang diteruskan ke nginx dengan ssl_certificate arahan.
  • privkey.pem adalah kunci pribadi RSA yang dihasilkan bersama sertifikat.


Ini juga dapat menggunakan .crt ekstensi; jika Anda telah menandatangani sendiri sertifikat dengan OpenSSL , Anda akan mendapatkan file CRT daripada PEM, meskipun isinya akan tetap sama, dan penggunaannya akan sama.


Untuk menggunakan sertifikat Anda, Anda harus meneruskannya sebagai parameter untuk server web Anda. Untuk nginx, Anda ingin menentukan ssl_certificate (file PEM rantai lengkap), dan ssl_certificate_key (file PEM kunci pribadi RSA), setelah mengaktifkan SSL:


ssl_certificate /etc/letsencrypt/live/yourdomain/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/yourdomain/privkey.pem;


Untuk Apache, pengaturannya sebagian besar sama, tetapi Anda harus menggunakan arahan SSLCertificateFileand SSLCertificateKeyFile:


SSLCertificateFile /etc/letsencrypt/live/yourdomain/fullchain.pem

SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain/privkey.pem


File PEM dengan SSH

File PEM juga digunakan untuk SSH. Jika Anda pernah menjalankan ssh-keygen untuk menggunakan ssh tanpa kata sandi, Anda ~/.ssh/id_rsa adalah file PEM, hanya tanpa ekstensi.


Terutama, Amazon Web Services memberi Anda file PEM yang berisi kunci pribadi setiap kali Anda membuat instans baru, dan Anda harus menggunakan kunci ini untuk dapat SSH ke instans EC2 baru.


Anda harus menggunakan -i flag with sshuntuk menentukan bahwa Anda ingin menggunakan kunci baru ini alih-alih id_rsa:


ssh -i keyfile.pem root@host


Ini akan membuat Anda masuk ke server seperti biasa, tetapi Anda harus menentukan tanda ini setiap kali.


Metode yang lebih mudah adalah menambahkan kunci pribadi ke ssh-agent Anda dengan ssh-add:


ssh-add keyfile.pem


Namun, ini tidak bertahan selama reboot, jadi Anda harus menjalankan perintah ini saat startup atau menambahkannya ke gantungan kunci macOS Anda.


Tentu saja, Anda juga selalu dapat menambahkan kunci publik utama Anda ke instance ~/.ssh/authorized_keyssetelah Anda masuk sekali, tetapi metode ini akan bekerja di luar kotak untuk setiap instance baru di masa mendatang.


Perlu dicatat bahwa Anda tetap harus mengunci server SSH Anda bahkan jika Anda menggunakan kunci sendiri.

Posting Komentar untuk "Apa itu File PEM dan Bagaimana Cara Menggunakannya?"