it-swarm-tr.com

Pem dosyası nedir ve diğer OpenSSL Oluşturulmuş Anahtar Dosya Biçimlerinden farkı nedir?

İki Debian sunucusunu korumaktan sorumluyum. Güvenlik sertifikalarıyla her şey yapmak zorunda kaldığımda, eğiticiler için Google'ı kullanıyorum ve sonunda çalışana kadar dayak yiyorum.

Ancak, aramalarımda genellikle farklı dosya biçimleriyle karşılaşıyorum (.key, .csr, .pem) ancak her dosya biçiminin amacının ne olduğuna dair iyi bir açıklama bulamadım.

ServerFault burada iyi millet bu konuda bazı açıklama sağlayabilir olmadığını merak ediyordum?

1413
Noah Goodrich

SSL, kapsayıcı formatları üzerinde mutabık kalınacağını düşünecek kadar uzun zamandır var. Ve haklısın, var. Olduğu kadar çok standart var. Yani bildiğim budur ve eminim başkaları da gelecektir.

  • . csr - Bu bir Sertifika İmzalama İsteğidir. Bazı uygulamalar sertifika yetkililerine sunulmak üzere bunları oluşturabilir. Gerçek format, RFC 2986 içinde tanımlanan PKCS10'dur. Talep edilen sertifikanın konu, kuruluş, eyalet, ne olursa olsun, imzalanacak sertifikanın genel anahtarı gibi anahtar ayrıntılarının bazılarını/tümünü içerir. Bunlar CA tarafından imzalanır ve bir sertifika iade edilir. Döndürülen sertifika, kendisi birkaç biçimde olabilen public sertifika (ortak anahtarı içerir, ancak özel anahtarı içermez).
  • . pem - RFC'lerde tanımlanmıştır 1421 - 1424 , bu, içerebilecek bir kapsayıcı biçimidir yalnızca genel sertifika (Apache yüklemelerinde olduğu gibi ve CA sertifika dosyalarında /etc/ssl/certs) veya ortak anahtar, özel anahtar ve kök sertifikalar dahil olmak üzere bir sertifika zincirinin tamamını içerebilir. Kafa karıştırıcı bir şekilde, PKCS10 formatı PEM'e çevrilebildiği için bir CSR'yi de (örneğin kullanıldığı gibi burada ) kodlayabilir. Ad, güvenli e-posta için başarısız bir yöntem olan Gizliliği Artırılmış Posta (PEM) , ancak kullandığı kapsayıcı biçimi yaşıyor ve x509 ASN.1 anahtarlarının temel64 çevirisidir.
  • . tuşu - Bu, belirli bir sertifikanın yalnızca özel anahtarını içeren PEM biçimli bir dosyadır ve standart bir ad değil, yalnızca geleneksel bir addır. Apache kurulumlarında, bu genellikle /etc/ssl/private. Bu dosyalardaki haklar çok önemlidir ve bazı programlar yanlış ayarlandıysa bu sertifikaları yüklemeyi reddeder.
  • . pkcs12 .pfx .p12 - Başlangıçta RSA tarafından Genel Anahtar Şifreleme Standartları (kısaltılmış PKCS) içinde " 12 "varyantı başlangıçta Microsoft tarafından geliştirilmiş ve daha sonra RFC 7292 olarak gönderilmiştir. Bu, hem genel hem de özel sertifika çiftlerini içeren şifreli bir kapsayıcı biçimidir. .Pem dosyalarının aksine, bu kapsayıcı tamamen şifrelenmiştir. Openssl bunu hem genel hem de özel anahtarlarla bir .pem dosyasına dönüştürebilir: openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes

Zaman zaman görünen diğer birkaç biçim:

  • . der - ASN.1 sözdizimini ikili olarak kodlamanın bir yolu olan bir .pem dosyası yalnızca Base64 kodlu bir .der dosyasıdır. OpenSSL bunları .pem (openssl x509 -inform der -in to-convert.der -out converted.pem). Windows bunları Sertifika dosyaları olarak görür. Varsayılan olarak, Windows sertifikaları farklı bir uzantıya sahip .DER biçimli dosyalar olarak dışa aktarır. Sevmek...
  • . cert .cer .crt - Farklı bir uzantıya sahip .pem (veya nadiren .der) biçimli bir dosya, Windows Gezgini tarafından Windows Gezgini .pem olmayan sertifika.
  • . p7b .keystore - RFC 2315 içinde PKCS numarası 7 olarak tanımlanmışsa, bu, Windows tarafından sertifika değişimi için kullanılan bir biçimdir. Java bunları yerel olarak anlar ve genellikle .keystore yerine. .Pem stil sertifikalarının aksine, bu biçimin sertifika yolu sertifikalarını dahil etmenin bir tanımlı yolu vardır.
  • . crl - Sertifika iptal listesi. Sertifika Yetkilileri, bunları süreleri dolmadan sertifikaların yetkisini kaldırmanın bir yolu olarak üretir. Bunları bazen CA web sitelerinden indirebilirsiniz.

Özet olarak, sertifikaları ve bileşenlerini sunmanın dört farklı yolu vardır:

  • [~ # ~] pem [~ # ~] - RFC'ler tarafından yönetilir, tercihen açık kaynaklı yazılım tarafından kullanılır. Çeşitli uzantılara sahip olabilir (.pem, .key, .cer, .cert, daha fazlası)
  • PKCS7 - Java ve Windows tarafından desteklenen açık bir standart. Özel anahtar malzemesi içermiyor.
  • PKCS12 - Daha sonra düz metin PEM biçimine karşı gelişmiş güvenlik sağlayan bir RFC'de tanımlanan bir Microsoft özel standardı. Bu özel anahtar materyal içerebilir. Tercihen Windows sistemleri tarafından kullanılır ve openssl kullanılarak serbestçe PEM formatına dönüştürülebilir.
  • [~ # ~] der [~ # ~] - PEM'in üst biçimi. Base64 ile kodlanmış PEM dosyasının ikili bir sürümü olarak düşünmek yararlıdır. Windows dışında çok fazla kullanılmaz.

Umarım bu yardımcı olur.

1730
sysadmin1138

Kendi başına PEM bir sertifika değil, sadece verileri kodlamanın bir yoludur. X.509 sertifikaları, yaygın olarak PEM kullanılarak kodlanan bir veri türüdür.

PEM, ASN.1 DER (ayırt edici kodlama kuralları) kullanılarak kodlanan, daha sonra Base64 kodlaması ile çalışan ve düz metin bağlantı hatları (BEGIN CERTIFICATE ve END CERTIFICATE arasında sıkışmış olan) X.509 sertifikasıdır (yapısı ASN.1 kullanılarak tanımlanır). ).

Aynı verileri PKCS # 7 veya PKCS # 12 gösterimlerini kullanarak temsil edebilirsiniz ve bunu yapmak için openssl komut satırı yardımcı programı kullanılabilir.

PEM'in bariz faydaları, bir e-posta iletisinin gövdesine yapıştırmanın güvenli olmasıdır, çünkü bağlantı hatları vardır ve 7 bit temizdir.

RFC1422 , anahtarlar ve sertifikalarla ilgili olarak PEM standardı hakkında daha fazla ayrıntıya sahiptir.

146
James F

Bazen bir .crt dosyası zaten bir .pem. Bakınız: https://stackoverflow.com/questions/991758/openssl-pem-key

57
mgold