Apa Pem file dan bagaimana cara berbeda dari yang lain OpenSSL Kunci yang Dihasilkan File Format?

Saya bertanggung jawab untuk menjaga dua Debian-server. Setiap kali saya harus melakukan apa-apa dengan sertifikat keamanan, saya Google untuk tutorial dan mengalahkan diri sampai akhirnya bekerja.

Namun, dalam pencarian saya, saya sering menemukan berbagai format file (.key, .csr, .pem) tapi aku've pernah mampu menemukan penjelasan yang baik dari apa yang masing-masing format file's tujuan adalah.

Aku bertanya-tanya jika orang-orang baik di sini, di ServerFault bisa memberikan beberapa klarifikasi mengenai hal ini?

Mengomentari pertanyaan (1)
Larutan

SSL telah sekitar untuk cukup lama anda'a berpikir bahwa tidak akan disepakati format kontainer. Dan anda're kanan, ada. Terlalu banyak standar seperti itu terjadi. Jadi ini adalah apa yang saya tahu, dan saya'm yakin orang lain akan berpadu.

  • .csr - Ini adalah Certificate Signing Request. Beberapa aplikasi dapat menghasilkan ini untuk pengajuan sertifikat-otoritas. Sebenarnya format PKCS10 yang didefinisikan pada RFC 2986. Ini mencakup beberapa/semua rincian penting dari sertifikat yang diminta seperti subjek, organisasi, negara, lainnya, serta kunci publik sertifikat untuk mendapatkan ditandatangani. Ini bisa ditandatangani oleh CA dan sertifikat kembali. Kembali sertifikat umum sertifikat (yang berisi kunci publik tetapi tidak kunci pribadi), yang dengan sendirinya dapat dalam beberapa format.
  • .pem - yang Didefinisikan dalam Rfc 1421 melalui 1424, ini adalah format kontainer yang mungkin mencakup hanya publik sertifikat (seperti dengan menginstal Apache, dan sertifikat CA file /etc/ssl/certs), atau dapat mencakup seluruh rantai sertifikat termasuk kunci publik, kunci privat, sertifikat akar. Membingungkan, mungkin juga menyandikan CSR (misalnya seperti yang digunakan di sini) sebagai PKCS10 format yang dapat diterjemahkan ke dalam PEM. Nama adalah dari Privacy Enhanced Mail (PEM), gagal metode untuk mengamankan email tapi format kontainer itu digunakan tinggal di, dan base64 terjemahan x509 ASN.1 kunci.
  • .kunci - Ini adalah PEM diformat file yang berisi hanya pribadi-kunci tertentu sertifikat dan hanya merupakan nama konvensional dan tidak standar satu. Dalam menginstal Apache, ini sering berada di /etc/ssl/private. Hak-hak pada file ini sangat penting, dan beberapa program yang akan menolak untuk memuat sertifikat ini jika mereka salah.
  • .pkcs12 .pfx .p12 - Awalnya didefinisikan oleh RSA di Standar Kriptografi Kunci Publik (disingkat PKCS), "12" varian awalnya ditingkatkan oleh Microsoft, dan kemudian diserahkan sebagai RFC 7292. Ini adalah passworded format kontainer yang berisi publik dan swasta sertifikat pasang. Tidak seperti .pem file, wadah ini sepenuhnya dienkripsi. Openssl dapat mengubah ini menjadi sebuah .pem file dengan kedua publik dan kunci pribadi: openssl pkcs12 -file-ke-convert.p12 -out diubah-file.pem-node

Beberapa format lain yang muncul dari waktu ke waktu:

  • .der - cara untuk mengkodekan ASN.1 sintaks dalam biner, a .pem file ini hanya Base64 encoded .der file. OpenSSL dapat mengubah ini untuk .pem (openssl x509 -menginformasikan der -di-convert.der -out cepat bertobat.pem). Windows melihat ini sebagai file Sertifikat. Secara default, Windows akan mengekspor sertifikat sebagai .DER diformat file dengan ekstensi yang berbeda. Seperti...
  • .cert .cer .crt - A .pem (atau jarang .der) diformat file dengan ekstensi yang berbeda, salah satu yang diakui oleh Windows Explorer seperti sertifikat, yang .pem tidak.
  • .p7b .keystore Didefinisikan pada RFC 2315 seperti PKCS nomor 7, ini adalah format yang digunakan oleh Windows untuk sertifikat interchange. Jawa memahami ini secara native, dan sering menggunakan .keystore sebagai perpanjangan sebaliknya. Tidak seperti .pem gaya sertifikat, format ini memiliki didefinisikan cara untuk menyertakan sertifikasi-jalan sertifikat.
  • .crl - daftar pencabutan sertifikat. Otoritas sertifikat menghasilkan ini sebagai cara untuk de-otorisasi sertifikat sebelum tanggal kedaluwarsa. Kadang-kadang anda dapat men-download mereka dari CA situs web.

Secara ringkas, ada empat cara yang berbeda untuk menyajikan sertifikat dan komponen mereka:

  • PEM - Diatur oleh Rfc, yang digunakan secara istimewa oleh perangkat lunak open-source. Hal ini dapat memiliki berbagai ekstensi (.pem, .key, .cer, .cert, lebih lanjut)
  • PKCS7 - standar terbuka Yang digunakan oleh Java dan didukung oleh Windows. Tidak mengandung kunci privat bahan.
  • PKCS12 - Microsoft swasta standar yang kemudian didefinisikan dalam RFC yang menyediakan keamanan yang ditingkatkan terhadap teks-format PEM. Ini dapat berisi private key bahan. Yang digunakan secara istimewa oleh sistem Windows, dan dapat dengan bebas dikonversi ke format PEM melalui penggunaan openssl.
  • DER - induk format PEM. It's berguna untuk menganggapnya sebagai versi biner base64-encoded file PEM. Tidak secara rutin digunakan sangat banyak di luar Jendela.

Saya harap ini membantu.

Komentar (20)

PEM pada itu's sendiri isn't sertifikat, it's hanya cara pengkodean data. Sertifikat X. 509 adalah salah satu jenis data yang biasa dikodekan menggunakan PEM.

PEM adalah sertifikat X. 509 (yang strukturnya didefinisikan dengan menggunakan ASN.1), dikodekan menggunakan ASN.1 DER (distinguished encoding rules), kemudian jalankan melalui Base64 encoding dan terjebak antara plain-text anchor garis (BEGIN SERTIFIKAT dan SERTIFIKAT AKHIR).

Anda dapat mewakili data yang sama menggunakan PKCS#7 atau PKCS#12 pernyataan, dan openssl utilitas baris perintah yang dapat digunakan untuk melakukan hal ini.

Manfaat yang jelas dari PEM adalah bahwa hal itu's aman untuk paste ke dalam tubuh pesan email karena memiliki garis jangkar dan 7-bit bersih.

RFC1422 memiliki rincian lebih lanjut tentang PEM standar sebagai hal yang berkaitan dengan kunci dan sertifikat.

Komentar (2)