การเปลี่ยนลายเซ็นบนใบรับรองหรือสร้างไฟล์คีย์จากใบรับรองที่มีอยู่


0

ฉันต้องการสร้างใบรับรองด้วยรหัสสาธารณะที่เฉพาะเจาะจง ฉันมีใบรับรองอื่นซึ่งมีรหัสสาธารณะที่ฉันต้องใช้และฉันต้องการเปลี่ยนลายเซ็นบนใบรับรองนั้นเป็นรูท CA ของการทำของฉัน

ฉันรู้วิธีรับเลขฐานสิบหกของกุญแจสาธารณะ แต่ OpenSSL ต้องการไฟล์ที่เข้ารหัสเป็นอินพุตเมื่อสร้างใบรับรองที่ลงนาม

ฉันจะให้ OpenSSL กับไฟล์คีย์สาธารณะที่จำเป็นสำหรับการสร้างใบรับรองใหม่ได้อย่างไรเมื่อฉันมีใบรับรองที่มีอยู่ซึ่งลงนามโดย CA อื่นอยู่แล้ว


การใช้ประกาศคีย์สาธารณะเมื่อคุณไม่มีคีย์ส่วนตัวคืออะไร
guntbert

คำตอบ:


2

มันเป็นความสามารถที่ค่อนข้างแปลก แต่บรรทัดคำสั่ง OpenSSL สามารถแน่นอน "ลงนามใหม่" ใบรับรองที่มีอยู่

 openssl x509 -in oldcert -CA cacertfile [-CAkey capkeyfile] -out newcert -days N

ใบรับรอง CA และคีย์ส่วนตัวต้อง (ทั้งคู่) อยู่ในรูปแบบ PEM คุณสามารถรวมคีย์ส่วนตัวในไฟล์ใบรับรองและไม่ใช้-CAkey fileตัวเลือก หากคุณละเว้น-days Nค่าเริ่มต้นที่ถูกต้องเป็น 30 วัน oldcert และ newcert เป็น PEM โดยค่าเริ่มต้น แต่สามารถเปลี่ยนแปลงได้ด้วย-informและ-outformตามลำดับ

หากคุณเป็นเพียงการทำเช่นนี้แล้วก็ง่ายที่สุดที่จะใช้-set_serial Sสำหรับการใหม่แบบอนุกรม หากคุณจะทำหรืออาจทำหลาย ๆ ครั้งสำหรับหนึ่ง CA เพื่อให้แน่ใจว่าแต่ละรายการได้รับอนุกรมที่ไม่ซ้ำกันให้ OpenSSL ใช้ไฟล์ serial-counter โดยระบุ-CAcreateserialในรายการแรกอย่างน้อยที่สุด

โดยค่าเริ่มต้นส่วนขยายจะไม่มีการเปลี่ยนแปลง หาก oldcert มีส่วนขยาย AuthorityKeyIdentifier ที่ชี้ไปที่ CA เก่าและ CA ใหม่นั้นแตกต่างกันสิ่งนี้จะทำให้ใบรับรองผลลัพธ์ไม่สามารถใช้งานได้เนื่องจากไม่สามารถตรวจสอบได้ ส่วนขยายที่เกี่ยวข้องกับ CA อื่น ๆ เช่น CRLDP และ AIA อาจทำให้เกิดปัญหาเช่นกัน ใช้-clrextเพื่อลบนามสกุลเก่า หากคุณต้องการส่วนขยาย (ใด ๆ ) ในใบรับรองใหม่คุณต้องกำหนดค่าส่วนขยาย (ทั้งหมด) ในไฟล์ที่ระบุด้วย-extfileและทางเลือก-extensions(ส่วน)

ดูhttps://www.openssl.org/docs/apps/x509.html#SIGNING-OPTIONS (และไปที่ลิงก์ไปยัง x509v3_config หากคุณต้องการส่วนขยาย) คำเตือนภายใต้-CA"... โดยไม่มีตัวเลือก -req ข้อมูลที่ป้อน ... จะต้องลงทะเบียนด้วยตนเอง" เกินกำหนด; ถ้าไม่ openssl ให้ข้อความแสดงข้อผิดพลาดเกี่ยวกับ "ไม่สามารถยืนยันได้" แต่สร้างใบรับรองใหม่ตามที่ต้องการ นอกจากนี้รีลีส1.0.1 ก่อนที่ f จะมีข้อผิดพลาดที่ทำให้เคสนี้ผิดเอาต์พุต ตรวจสอบให้แน่ใจว่าคุณไม่ได้ใช้หนึ่งในเวอร์ชันเหล่านั้น

และตามที่ระบุไว้แล้วเว้นแต่ว่าคุณมี privatekey ที่ตรงกันบางแห่ง (อาจเป็นระบบ / แอพ / สิ่งที่แตกต่างกัน) ใบรับรองที่ได้นั้นมีความ จำกัด มาก

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