ฉันต้องการตั้งค่า OCSP Responder ของตัวเอง (เพื่อจุดประสงค์ในการทดสอบ) สิ่งนี้ต้องการให้ฉันมีใบรับรองรูทและใบรับรองไม่กี่รายการที่สร้างขึ้นจากมัน
ฉันจัดการเพื่อสร้างใบรับรองที่ลงชื่อด้วยตัวเองโดยใช้ openssl ฉันต้องการใช้เป็นใบรับรองรูท ขั้นตอนต่อไปคือการสร้างใบรับรองที่ได้รับ ฉันไม่สามารถหาเอกสารเกี่ยวกับวิธีการทำเช่นนี้ได้ ไม่มีใครรู้ว่าฉันสามารถหาข้อมูลนี้ได้ที่ไหน?
แก้ไข
ในการหวนกลับคำถามของฉันยังไม่ได้ตอบอย่างสมบูรณ์ เพื่อชี้แจงปัญหาฉันจะเป็นตัวแทนของห่วงโซ่ใบรับรองของฉันเช่นนี้:
ROOT -> A -> B -> C -> ...
ขณะนี้ฉันสามารถสร้างใบรับรอง ROOT และ A แต่ฉันไม่พบวิธีการสร้างเครือข่ายที่ยาวขึ้น
คำสั่งของฉันสำหรับการสร้างใบรับรองหลักคือ:
openssl req -new -newkey rsa:1024 -nodes -out ca.csr -keyout ca.key
openssl x509 -trustout -signkey ca.key -days 365 -req -in ca.csr -out ca.pem
สร้างใบรับรอง A ดังนี้:
openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer
คำสั่งนี้ขึ้นอยู่กับใบรับรองรูทซึ่งจะค้นหาข้อมูลที่ต้องการในไฟล์กำหนดค่า openssl โดยปริยาย
อย่างไรก็ตามใบรับรอง B ต้องพึ่งพา A เท่านั้นซึ่งไม่ได้ลงทะเบียนในไฟล์กำหนดค่าดังนั้นคำสั่งก่อนหน้านี้จะไม่ทำงานที่นี่
บรรทัดคำสั่งใดที่ฉันควรใช้เพื่อสร้างใบรับรอง B และอื่น ๆ
แก้ไข
ผมพบคำตอบในบทความนี้ ใบรับรอง B (เชน A -> B) สามารถสร้างขึ้นได้ด้วยสองคำสั่ง:
# Create a certificate request
openssl req -new -keyout B.key -out B.request -days 365
# Create and sign the certificate
openssl ca -policy policy_anything -keyfile A.key -cert A.pem -out B.pem -infiles B.request
ฉันยังเปลี่ยนไฟล์ openssl.cnf ด้วย:
[ usr_cert ]
basicConstraints=CA:TRUE # prev value was FALSE
วิธีการนี้ดูเหมือนว่าจะทำงานได้ดี