Yanıtlar:
Kriptografik sertifikalar için dosya uzantıları, beklediğiniz kadar standartlaştırılmamıştır. Windows varsayılan .crt
olarak bir dosyayı çift tıklatmayı sertifikayı Windows Kök Sertifika deposuna alma .cer
isteği olarak kabul eder, ancak bir dosyayı yalnızca sertifikayı görüntülemek için bir istek olarak kabul eder . Bu nedenle, Windows'un her dosya türünü çift tıkladığınızda ne olacağı konusunda bazı doğal farklı anlamları olması açısından farklıdırlar.
Ancak, bunları çift tıkladığınızda Windows'un bunları işleme biçimi, ikisi arasındaki tek farkla ilgilidir. Her iki uzantı da bir genel sertifika içerdiğini gösterir. Gördüğüm herhangi bir sistem veya yapılandırma dosyasında bir uzantıyı diğerinin yerine kullanmak için bir sertifika dosyasını yeniden adlandırabilirsiniz. Ve Windows olmayan platformlarda (ve hatta Windows'ta), kullanıcılar hangi uzantıyı kullandıkları konusunda özellikle dikkatli değiller ve dosyanın içeriği doğru olduğu sürece aralarında bir fark olmadığı için ikisine de birbirinin yerine muamele ediyorlar.
İşleri daha kafa karıştırıcı hale getirmek, sertifika verilerini bir dosyada saklamanın iki standart yolu olmasıdır: Biri "ikili" X.509 kodlaması, diğeri ise genellikle " -----BEGIN CERTIFICATE-----
" ile başlayan bir "metin" base64 kodlamasıdır . Bunlar aynı verileri ancak farklı şekillerde kodlar. Çoğu sistem her iki formatı da kabul eder, ancak gerekirse, openssl veya diğer araçlar aracılığıyla birini diğerine dönüştürebilirsiniz. Bir sertifika dosyasındaki kodlama, birinin dosyaya verdiği uzantıdan gerçekten bağımsızdır.
Belgelere göre mod_ssl :
SSLCertificateFile:
Name: SSLCertificateFile
Description: Server PEM-encoded X.509 certificate file
Sertifika dosyası PEM kodlu X.509 Sertifika dosyası olmalıdır:
openssl x509 -inform DER -in certificate.cer -out certificate.pem
zscaler
çalışırken ssl sertifika hatalarını çözecek mi? Onları yaptım , sonra dönüştürmenizi kullandım ve onları sembolik bağla bağladım ve yeniden yapılandırmadan önce içeriği dosyaya kopyaladım ve hala dev kutusunda bir hata alıyorum . vagrant
win
vbox
homestead
scp
/etc/ssl/certs
ca-certificates.crt
google-recaptcha
tls
ssl
file_get_contents
Temel olarak iki CER sertifikası kodlama türü vardır, DER ve Base64. DER tipi bir sertifika yükleme hatası döndürdüğünde (asn1 kodlama rutinleri), PEM'i deneyin ve çalışacaktır.
openssl x509 -inform DER -in certificate.cer -out certificate.crt
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
PKCS # 7 kodlu sertifika verilerini içeren bir .cer dosyanız olduğunu ve bunu PEM kodlu sertifika verilerine (tipik olarak bir .crt veya .pem dosyası) dönüştürmek istediğinizi varsayıyorum. Örneğin, PKCS # 7 kodlu verileri içeren bir .cer dosyası şuna benzer:
----- PKCS7 BAŞLAT ----- MIIW4gYJKoZIhvcNAQcCoIIW0zCCFs8CAQExADALBgkqhkiG9w0BBwGggha1MIIH ... POI9n9cd2cNgQ4xYDiKWL2KjLB + 6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G + bKhADEA ----- PKCS7 SONU -----
PEM sertifika verileri şu şekildedir:
----- SERTİFİKAYA BAŞLA ----- MIIHNjCCBh6gAwIBAgIQAlBxtqKazsxUSR9QdWWxaDANBgkqhkiG9w0BAQUFADBm ... nv72c / OV4nlyrvBLPoaS5JFUJvFUG8RfAEY = ----- SON SERTİFİKA -----
.Cer dosyalarını (PKCS # 7 verileriyle) karşılaşmayı beklediğiniz PEM verilerine ( BEGIN CERTIFICATE
yukarıdaki örnekteki blok ) dönüştürecek bir OpenSSL komutu vardır . Sertfile.cer olarak adlandıracağımız bir dosya üzerinde PKCS # 7 verilerini PEM formatına zorlayabilirsiniz:
openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem
Bir .cer veya .pem dosyasının bir veya daha fazla sertifika (muhtemelen sertifika zincirinin tamamı) içerebileceğini unutmayın.
CER , DER kodlu ikili biçimde bir X.509 sertifikasıdır .
CRT , metin ( taban-64 ) kodlamasıyla kapsüllenmiş ikili bir X.509 sertifikasıdır .
Aynı kodlama değil.
Bir .cer dosyasını bir .crt dosyasına nasıl dönüştüreceğiniz sorusunun cevabı (bunlar farklı şekilde kodlanmıştır!):
openssl pkcs7 -print_certs -in certificate.cer -out certificate.crt
openssl x509 -inform der -in certificate.cer -out certificate.pem
unable to load PKCS7 object
Şu komutu kullanıyorum:
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
Ancak CER, DER kodlu ikili biçimde bir X.509 sertifikasıdır. CRT, metin (taban-64) kodlamasıyla kapsüllenmiş ikili bir X.509 sertifikasıdır.
Bu nedenle, belki kullanmalısınız:
openssl x509 -inform DER -in certificate.cer -out certificate.crt
Ve sonra sertifikanızı içe aktarmak için:
CA'nızı dizine kopyalayın:
/usr/local/share/ca-certificates/
Komutu kullanın:
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
CA deposunu güncelleyin:
sudo update-ca-certificates
Cer dosyanızın ikili biçimi varsa, onu şu şekilde dönüştürmelisiniz:
openssl x509 -inform DER -in YOUR_CERTIFICATE.cer -out YOUR_CERTIFICATE.crt
.Cer ve .crt dosyası, bir anahtar deposuna içe aktarıldığı sürece birbiriyle değiştirilebilir olmalıdır.
.Cer dosyasının içeriğine bir göz atın. Satırdan önce -----BEGIN CERTIFICATE-----
ve sonra her şeyi silin -----END CERTIFICATE-----
. BEGIN / END satırları arasında Base64 kodlu bir sürü şey kalacak.
-----BEGIN CERTIFICATE-----
MIIDQTCCAqqgAwIBAgIJALQea21f1bVjMA0GCSqGSIb3DQEBBQUAMIG1MQswCQYD
...
pfDACIDHTrwCk5OefMwArfEkSBo/
-----END CERTIFICATE-----
Ardından, anahtar aracını kullanarak onu anahtar dosyanıza aktarın.
keytool -import -alias myalias -keystore my.keystore -trustcacerts -file mycert.cer
Sadece yap
openssl x509 -req -days 365 -in server.cer -signkey server.key -out server.crt
CER
veCRT
uzantılar hiçbir şey ifade etmiyor. Farklı PKI satıcıları aynı şey için farklı uzantılar kullanır. Dosya ikili ise, muhtemelen ASN.1 / DER kodludur. Dosya insan tarafından okunabiliyorsa-----BEGIN CERTIFICATE-----
, PEM kodlanmıştır. Neye sahipsiniz (DER veya PEM) ve neye ihtiyacınız var (DER veya PEM)?