ฉันจะแปลงใบรับรอง. cer เป็น. pem ได้อย่างไร


73

ฉันมี.cerใบรับรองและฉันต้องการแปลงเป็น.pemรูปแบบ

ถ้าผมจำไม่ผิดผมใช้เพื่อให้สามารถแปลงพวกเขาโดยการส่งออก.cerใน Base64 .pemแล้วเปลี่ยนชื่อไฟล์ไปยัง

ฉันจะแปลง.cerใบรับรองเป็น.pemอย่างไร

คำตอบ:


127

แปลงไฟล์ DER (.crt .cer .der) เป็น PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

แหล่ง


13
ใช้งานไม่ได้สำหรับฉัน ไฟล์ CER ถูกส่งออกจากเครื่องมือส่งออกใบรับรอง Windows มันมีแบบฟอร์มต่อไปนี้: -----BEGIN CERTIFICATE----- MII...D2H -----END CERTIFICATE-----. จาก openssl ฉันได้รับข้อผิดพลาดดังต่อไปนี้:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1338: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:390:Type=X509
Martin Pecka

14
จากนั้นใบรับรองของคุณอยู่ในรูปแบบ PEM แล้ว เพียงแค่เปลี่ยนชื่อได้จากการcertificate.cer certificate.pem
slowhand

12

เมื่อ OpenSSL ไม่สามารถใช้ได้ในระบบของคุณหรือคุณสามารถแปลงใบรับรองกับจาวาkeytool

อย่างไรก็ตามคุณต้องสร้าง java keystore (JKS) ก่อน ใบรับรองนั้นสามารถนำเข้าและส่งออกในรูปแบบที่แตกต่างกัน

keytool -genkey -alias test -keystore <key store file>
keytool -delete -alias test -keystore <key store file>

การแปลงจาก DER เป็น PEM:

keytool -import -trustcacerts -alias test -file <der certificate file> -keystore test.keystore 
keytool -exportcert -alias test -file <pem certificate file> -rfc -keystore test.keystore

โพสต์บล็อกนี้อธิบายถึงวิธีการแปลงรูปแบบใบรับรองโดยละเอียด


ฉันทำสิ่งนี้และไฟล์. pem นั้นเกือบจะเหมือนกับไฟล์. cer ซึ่งต่างไปจากเดิม
endolith

1
@endolith ในกรณีนั้นทั้งไฟล์. pem ไฟล์. cer สามารถเข้ารหัส. ad หรือ. pem คำถามนี้จะถือว่าการเข้ารหัส. ad ซึ่งคุณไม่ได้มี
eis

11

แปลงไฟล์. cer เป็น. pem

เปิดเทอร์มินัลแล้วเรียกใช้คำสั่งต่อไปนี้

openssl x509 -inform der -in certificate.cer -outform pem -out certificate.pem

โดยที่ certificate.cer เป็นไฟล์ใบรับรองต้นทางที่คุณต้องการแปลงและ certificate.pem เป็นชื่อของใบรับรองที่แปลงแล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.