ส่งออกใบรับรองและคีย์ส่วนตัวจากไฟล์ PKCS # 12 ด้วย OpenSSL

หมายเหตุ บทความนี้ใช้ไม่ได้กับการเซ็นโค้ด SSL.com และใบรับรองการเซ็นเอกสาร คีย์ส่วนตัวของใบรับรองประเภทนี้ไม่สามารถส่งออกได้ และไม่สามารถสร้างเป็นไฟล์ .pfx ได้ ใบรับรองการลงนามรหัส SSL.com และการลงนามเอกสารและคีย์ส่วนตัวสามารถสร้างและเก็บไว้ในเท่านั้น สภาพแวดล้อมการลงนามบนคลาวด์ eSignerที่ ยูไบกี้ อุปกรณ์หรืออุปกรณ์ที่รองรับ คลาวด์ HSM.

วิธีการนี้จะแนะนำคุณในการแยกข้อมูลจากไฟล์ PKCS # 12 ด้วย OpenSSL PKCS # 12 (หรือที่เรียกว่า PKCS12 หรือ PFX) เป็นรูปแบบไบนารีสำหรับการจัดเก็บห่วงโซ่ใบรับรองและคีย์ส่วนตัวในไฟล์เดียวที่เข้ารหัสได้ ไฟล์ PKCS # 12 มักใช้เพื่อนำเข้าและส่งออกใบรับรองและคีย์ส่วนตัวในคอมพิวเตอร์ Windows และ macOS และมักจะมีนามสกุลไฟล์ .p12 or .pfx.

สำหรับวิธีการที่เป็นประโยชน์เพิ่มเติมและข่าวความปลอดภัยทางไซเบอร์ล่าสุด สมัครรับจดหมายข่าวของ SSL.com ที่นี่:

OpenSSL คืออะไร
OpenSSL เป็นชุดเครื่องมือบรรทัดคำสั่งที่มีประโยชน์มากสำหรับการทำงานกับ เอ็กซ์.509 ใบรับรอง, คำขอลงนามใบรับรอง (CSRs) และคีย์การเข้ารหัส หากคุณใช้ตัวแปร UNIX เช่น Linux หรือ macOS อาจมีการติดตั้ง OpenSSL ไว้ในคอมพิวเตอร์ของคุณแล้ว หากคุณต้องการใช้ OpenSSL บน Windows คุณสามารถเปิดใช้งานได้ ระบบย่อย Linux ของ Windows 10 หรือติดตั้ง Cygwin. คุณยังสามารถ สร้าง ไฟล์ PKCS # 12 ที่มี openSSL

วีดีโอ

https://www.youtube.com/watch?v=S_imVMFOdhU

ในตัวอย่างทั้งหมดที่แสดงด้านล่างให้แทนที่ชื่อของไฟล์ที่คุณใช้งานด้วย INFILE.p12, OUTFILE.crtและ OUTFILE.key.

ดูข้อมูล PKCS # 12 บนหน้าจอ

หากต้องการดัมพ์ข้อมูลทั้งหมดในไฟล์ PKCS # 12 ไปยังหน้าจอ รูปแบบ PEMใช้คำสั่งนี้:

openssl pkcs12 -info -in INFILE.p12 - โหนด

จากนั้นคุณจะได้รับแจ้งให้ใส่รหัสผ่านของไฟล์ PKCS # 12:

ป้อนรหัสผ่านนำเข้า:

พิมพ์รหัสผ่านที่ป้อนเมื่อสร้างไฟล์ PKCS # 12 แล้วกด enter. OpenSSL จะส่งออกใบรับรองและคีย์ส่วนตัวในไฟล์ไปที่หน้าจอ:

คุณสมบัติกระเป๋า localKeyID: AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 หัวเรื่อง = / CN = Aaron Russell/emailAddress=*********@gmail.com ผู้ออก = / C = สหรัฐฯ / ST = เท็กซัส / L = ฮุสตัน / O = SSL Corp / CN = SSL.com ไคลเอ็นต์ใบรับรองระดับกลาง CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ไม่มีข้อมูล

เข้ารหัสคีย์ส่วนตัว

หากคุณต้องการเข้ารหัสคีย์ส่วนตัวและป้องกันด้วยรหัสผ่านก่อนที่จะออกเพียงแค่ละเว้น -nodes ตั้งค่าสถานะจากคำสั่ง:

opensl pkcs12 -info -in INFILE.p12

ในกรณีนี้คุณจะได้รับแจ้งให้ป้อนและตรวจสอบรหัสผ่านใหม่หลังจาก OpenSSL ออกใบรับรองใด ๆ และรหัสส่วนตัวจะถูกเข้ารหัส (โปรดทราบว่าข้อความของคีย์นั้นขึ้นต้นด้วย -----BEGIN ENCRYPTED PRIVATE KEY-----):

ใส่วลีรหัสผ่าน PEM: การตรวจสอบ - ป้อนวลีรหัสผ่าน PEM: ----- BEGIN เข้ารหัสคีย์ส่วนตัว ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END เข้ารหัส รหัสลับ -----

แตกเฉพาะใบรับรองหรือคีย์ส่วนตัว

หากคุณต้องการส่งออกคีย์ส่วนตัวให้เพิ่ม -nocerts คำสั่ง:

opensl pkcs12 -info -in INFILE.p12 -nodes -nocerts

หากคุณต้องการใบรับรองให้ใช้ -nokeys (และเนื่องจากเราไม่เกี่ยวข้องกับคีย์ส่วนตัวเราจึงสามารถละเว้นได้อย่างปลอดภัย -nodes):

opensl pkcs12 -info -in INFILE.p12 -nokeys

บันทึกใบรับรองและกุญแจส่วนตัวลงในไฟล์

คุณสามารถส่งออกใบรับรองและคีย์ส่วนตัวจากไฟล์ PKCS # 12 และบันทึกในรูปแบบ PEM ไปยังไฟล์ใหม่โดยการระบุชื่อไฟล์ที่ส่งออก:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt - โหนด

อีกครั้งคุณจะได้รับแจ้งให้ใส่รหัสผ่านของไฟล์ PKCS # 12 ก่อนหน้านี้คุณสามารถเข้ารหัสคีย์ส่วนตัวได้โดยการลบไฟล์ -nodes ตั้งค่าสถานะจากคำสั่งและ / หรือเพิ่ม -nocerts or -nokeys เพื่อส่งออกเฉพาะคีย์ส่วนตัวหรือใบรับรอง ดังนั้นเพื่อสร้างไฟล์กุญแจส่วนตัวเราสามารถใช้คำสั่งนี้:

openssl pkcs12 ใน INFILE.p12 หมด OUTFILE.key -nodes -nocerts

และเพื่อสร้างไฟล์รวมถึงใบรับรองเท่านั้นใช้สิ่งนี้:

opensl pkcs12 - ใน INFILE.p12 - ออก OUTFILE.crt -nokeys

แปลงรหัสส่วนตัวเป็นรูปแบบ PKCS # 1

ตัวอย่างข้างต้นทั้งหมดแสดงผลคีย์ส่วนตัวในค่าเริ่มต้นของ OpenSSL PKCS # 8 รูปแบบ. ถ้าคุณรู้ว่าคุณต้องการ PKCS # 1 แต่คุณสามารถไพพ์เอาต์พุตของยูทิลิตี้ PKCS # 12 ของ OpenSSL ไปยังยูทิลิตี้ RSA หรือ EC ได้โดยขึ้นอยู่กับประเภทคีย์ คำสั่งทั้งสองด้านล่างนี้จะแสดงไฟล์คีย์ในรูปแบบ PKCS # 1:

อาร์เอส

opensl pkcs12 - ใน INFILE.p12 -nodes -nocerts | opensl rsa - ออก OUTFILE.key

ECDSA

opensl pkcs12 - ใน INFILE.p12 -nodes -nocerts | opensl ec -out OUTFILE.key

หมายเหตุ คุณสามารถบอกความแตกต่างระหว่างไฟล์ส่วนตัวของ PKCS # 8 และ PKCS # 1 ได้โดยดูที่บรรทัดแรกของข้อความ ไฟล์ PKCS # 1 จะระบุอัลกอริทึม:
-----BEGIN RSA PRIVATE KEY-----

ไฟล์ PKCS # 8 ไม่แสดงอัลกอริทึมและอาจถูกเข้ารหัสด้วย:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


ขอบคุณที่เลือกใช้ SSL.com! หากคุณมีคำถามใด ๆ โปรดติดต่อเราทางอีเมลที่ Support@SSL.com, โทร 1-877-SSL-SECUREหรือเพียงคลิกลิงก์แชทที่ด้านล่างขวาของหน้านี้

สมัครรับจดหมายข่าวของ SSL.com

อย่าพลาดบทความและการปรับปรุงใหม่จาก SSL.com

รับทราบข้อมูลและปลอดภัย

SSL.com เป็นผู้นำระดับโลกในด้านความปลอดภัยทางไซเบอร์ PKI และใบรับรองดิจิทัล ลงทะเบียนเพื่อรับข่าวสารอุตสาหกรรม เคล็ดลับ และประกาศผลิตภัณฑ์ล่าสุดจาก SSL.com.

เราชอบความคิดเห็นของคุณ

ทำแบบสำรวจของเราและแจ้งให้เราทราบความคิดเห็นของคุณเกี่ยวกับการซื้อครั้งล่าสุดของคุณ