วิธีสร้าง.pem
ใบรับรอง CAและใบรับรองไคลเอ็นต์จากไฟล์ PFX โดยใช้ OpenSSL
วิธีสร้าง.pem
ใบรับรอง CAและใบรับรองไคลเอ็นต์จากไฟล์ PFX โดยใช้ OpenSSL
คำตอบ:
คุณสามารถใช้เครื่องมือบรรทัดคำสั่ง OpenSSL คำสั่งต่อไปนี้ควรทำเคล็ดลับ
openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts
openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts
หากคุณต้องการให้ไฟล์ของคุณได้รับการป้องกันด้วยรหัสผ่านเป็นต้นมีตัวเลือกเพิ่มเติม
อีกมุมมองหนึ่งสำหรับการทำบน Linux ... นี่คือวิธีการทำเพื่อให้ไฟล์เดียวที่ได้รับมีคีย์ส่วนตัวที่ถอดรหัสเพื่อให้บางอย่างเช่น HAProxy สามารถใช้งานได้โดยไม่ต้องแจ้งให้คุณป้อนข้อความรหัสผ่าน
openssl pkcs12 -in file.pfx -out file.pem -nodes
จากนั้นคุณสามารถกำหนดค่า HAProxy เพื่อใช้ไฟล์ file.pem
นี่เป็นการแก้ไขจากเวอร์ชันก่อนหน้าซึ่งฉันมีหลายขั้นตอนเหล่านี้จนกว่าฉันจะรู้ว่าตัวเลือก -nodes เพียงแค่ข้ามการเข้ารหัสคีย์ส่วนตัว แต่ฉันจะทิ้งมันไว้ที่นี่เพราะมันอาจช่วยสอนได้
openssl pkcs12 -in file.pfx -out file.nokey.pem -nokeys
openssl pkcs12 -in file.pfx -out file.withkey.pem
openssl rsa -in file.withkey.pem -out file.key
cat file.nokey.pem file.key > file.combo.pem
จากนั้นคุณสามารถกำหนดค่า HAProxy เพื่อใช้ไฟล์ file.combo.pem
เหตุผลที่คุณต้องใช้ขั้นตอนแยกกัน 2 ขั้นตอนที่คุณระบุไฟล์ที่มีคีย์และอีกขั้นตอนหนึ่งที่ไม่มีคีย์เป็นเพราะถ้าคุณมีไฟล์ที่มีทั้งคีย์ที่เข้ารหัสและถอดรหัสบางอย่างเช่น HAProxy จะยังคงแจ้งให้คุณพิมพ์ข้อความรหัสผ่านเมื่อ มันใช้มัน
แม้ว่าคำตอบอื่น ๆ จะถูกต้องและอธิบายอย่างละเอียด แต่ฉันพบว่ามีปัญหาในการทำความเข้าใจ นี่คือวิธีที่ฉันใช้ ( นำมาจากที่นี่ ):
openssl pkcs12 -in filename.pfx -out cert.pem -nodes
แยกคีย์ส่วนตัวในรูปแบบ PFX เป็นไฟล์ PEM:
openssl pkcs12 -in filename.pfx -nocerts -out key.pem
ส่งออกใบรับรอง (รวมถึงคีย์สาธารณะเท่านั้น):
openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem
ลบรหัสผ่าน (ถอดความ) จากคีย์ส่วนตัวที่แยกออกมา (ไม่บังคับ):
openssl rsa -in key.pem -out server.key