İki Debian sunucusunun bakımından sorumluyum. Ne zaman güvenlik sertifikalarıyla ilgili bir şey yapmam gerekse, Google'da öğreticiler arıyorum ve sonunda çalışana kadar uğraşıyorum.
Ancak, aramalarımda sık sık farklı dosya formatlarıyla karşılaşıyorum (.key
, .csr
, .pem
), ancak her dosya formatının amacının ne olduğuna dair iyi bir açıklama bulamadım.
Acaba ServerFault'taki iyi insanlar bu konuya biraz açıklık getirebilir mi?
SSL, üzerinde anlaşmaya varılmış konteyner formatları olacağını düşünebileceğiniz kadar uzun süredir kullanılmaktadır. Ve haklısınız, var. Olduğu gibi çok fazla standart var. Bildiklerim bunlar ve eminim başkaları da bana katılacaktır.
/etc/ssl/certs
gibi) ya da genel anahtar, özel anahtar ve kök sertifikaları içeren tüm sertifika zincirini içerebilen bir kapsayıcı formattır. Kafa karıştırıcı bir şekilde, PKCS10 biçimi PEM'e çevrilebildiği için bir CSR'yi de kodlayabilir (örneğin burada kullanıldığı gibi). Adı, güvenli e-posta için başarısız bir yöntem olan [Privacy Enhanced Mail (PEM)]'den (https://en.wikipedia.org/wiki/Privacy-enhanced_Electronic_Mail) gelmektedir, ancak kullandığı kapsayıcı biçimi yaşamaya devam etmektedir ve x509 ASN.1 anahtarlarının base64 çevirisidir./etc/ssl/private
içinde bulunur. Bu dosyalar üzerindeki haklar çok önemlidir ve bazı programlar yanlış ayarlanmışlarsa bu sertifikaları yüklemeyi reddederler.openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
Zaman zaman ortaya çıkan birkaç başka format:
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çimlendirilmiş dosyalar olarak dışa aktaracaktır. Mesela....keystore
kullanır. .pem tarzı sertifikaların aksine, bu biçim sertifika yolu sertifikalarını dahil etmek için tanımlı bir yola sahiptir.Özetle, sertifikaları ve bileşenlerini sunmanın dört farklı yolu vardır:
Umarım bu yardımcı olur.
PEM kendi başına bir sertifika değildir, sadece bir veri kodlama yöntemidir. 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 kodlanmış, ardından Base64 kodlamasından geçirilmiş ve düz metin bağlantı satırları (BEGIN CERTIFICATE ve END CERTIFICATE) arasına sıkıştırılmış bir X.509 sertifikasıdır (yapısı ASN.1 kullanılarak tanımlanmıştır).
Aynı verileri PKCS#7 veya PKCS#12 temsillerini kullanarak da gösterebilirsiniz ve bunu yapmak için openssl komut satırı yardımcı programı kullanılabilir.
PEM'in bariz faydaları, bağlantı satırlarına sahip olması ve 7 bit temiz olması nedeniyle bir e-posta mesajının gövdesine yapıştırmanın güvenli olmasıdır.
RFC1422, anahtarlar ve sertifikalarla ilgili olarak PEM standardı hakkında daha fazla ayrıntıya sahiptir.
Bazen bir .crt
dosyası zaten bir .pem
dir. Bakınız: https://stackoverflow.com/questions/991758/openssl-pem-key