ฉันมีโหลดบาลานเซอร์ที่ต้องใช้ใบรับรองที่มีการกำหนดค่าเฉพาะ น่าเสียดายที่ผู้สร้างใบรับรองแรกไม่ได้บันทึกการกำหนดค่านี้ไว้ และฉันมีเพียงรายการคำสั่งที่ยังไม่สมบูรณ์เช่นกัน
ฉันมีสองไฟล์เหล่านี้: example_ca.crt และ ตัวอย่าง. crt
และใช้คำสั่ง OpenSSL นี้:
opensl x509 - ใน file_name.crt - ข้อความ - ไม่มี
นี่คือคุณสมบัติของมัน (ฉันจะละเว้นข้อมูลที่ไม่เกี่ยวข้อง):
example_ca.crt
ใบรับรอง:
ข้อมูล:
รุ่น: 3 (0x2)
หมายเลขซีเรียล:
cb:0f:b8:78:38:9a:a9:da
อัลกอริทึมลายเซ็น: sha256WithRSAEncryption
ผู้ออก: CN = example.org
ความถูกต้อง
ไม่ใช่ก่อน: 10 มิ.ย. 10:33:06 น. 2020 GMT
ไม่ทัน : 17 พฤษภาคม 10:33:06 2120 GMT
หัวเรื่อง: CN = example.org
เรื่องข้อมูลคีย์สาธารณะ:
อัลกอริทึมคีย์สาธารณะ: rsaEncryption
คีย์สาธารณะ RSA: (2048 บิต)
โมดูลัส:
[...]
เลขชี้กำลัง: 65537 (0x10001)
ส่วนขยาย X509v3:
ตัวระบุคีย์เรื่อง X509v3:
81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
ตัวระบุรหัสสิทธิ์ X509v3:
รหัสคีย์:81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
X509v3 ข้อจำกัดพื้นฐาน:
คริส:จริง
อัลกอริทึมลายเซ็น: sha256WithRSAEncryption
[...]
ตัวอย่าง. crt
ใบรับรอง:
ข้อมูล:
รุ่น: 3 (0x2)
หมายเลขซีเรียล:
80:1d:bb:9e:9f:2c:4e:ce
อัลกอริทึมลายเซ็น: sha256WithRSAEncryption
ผู้ออก: CN = example.org
ความถูกต้อง
ไม่ใช่ก่อน: 10 มิ.ย. 10:33:44 น. 2020 GMT
ไม่ทัน : 17 พฤษภาคม 10:33:44 2120 GMT
หัวเรื่อง: CN = example.org
เรื่องข้อมูลคีย์สาธารณะ:
อัลกอริทึมคีย์สาธารณะ: rsaEncryption
คีย์สาธารณะ RSA: (2048 บิต)
โมดูลัส:
[...]
เลขชี้กำลัง: 65537 (0x10001)
ส่วนขยาย X509v3:
X509v3 การใช้คีย์เพิ่มเติม:
การตรวจสอบไคลเอ็นต์เว็บ TLS, การตรวจสอบเซิร์ฟเวอร์เว็บ TLS
ตัวระบุรหัสสิทธิ์ X509v3:
รหัสคีย์:81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
ตัวระบุคีย์เรื่อง X509v3:
B1:2C:74:04:EE:03:84:C9:F7:92:35:CE:6E:20:EF:C6:FE:B8:23:A7
อัลกอริทึมลายเซ็น: sha256WithRSAEncryption
[...]
ฉันสามารถทำซ้ำได้ example_ca.crt ด้วยคำสั่งและการกำหนดค่าเหล่านี้ (วันหมดอายุไม่เกี่ยวข้อง):
openssl genrsa - ออก example_ca.key 2048
openssl req -new -x509 -days 365 -key example_ca.key -out example_ca.crt -config root.cnf
root.cnf
# การกำหนดค่า OpenSSL สำหรับ Root CA
[ ต้องการ ]
พรอมต์ = ไม่
string_mask = ค่าเริ่มต้น
default_bits = 2048
Distinuous_name = req_distinuous_name
x509_extensions = x509_ext
[ ชื่อเรียกซ้ำ ]
ชื่อสามัญ = example.org
[ x509_ext ]
ExtendedKeyUsage = clientAuth, serverAuth
subjectKeyIdentifier = แฮช
AuthorityKeyIdentifier = รหัสคีย์
ข้อจำกัดพื้นฐาน=CA:จริง
ปัญหาของฉันมาถึงจุดนี้เมื่อฉันไม่สามารถทำซ้ำได้ ตัวอย่าง. crtฉันได้ลองความเป็นไปได้มากมายใน server.cnf และ opensl.cnf ไฟล์และฉันไม่ได้เข้าใกล้ผลลัพธ์ที่ต้องการ
สำหรับขั้นตอนสุดท้าย ฉันใช้คำสั่งเหล่านี้:
openssl genrsa - ออก example.key 2048
opensl req -new -out example.csr -key example.key -config server.cnf
echo ExtendedKeyUsage = clientAuth > opensl.cnf
opensl x509 -req -in example.csr -out example.crt -signkey example.key -CA example_ca.crt -CAkey example_ca.key -CAcreateserial -วัน 365 -extfileopenssl.cnf
ฉันจะข้ามเนื้อหาของ server.cnf เพราะนั่นคือที่ที่ฉันต้องการความช่วยเหลือ แต่โดยพื้นฐานแล้วฉันมักจะคิดถึง "ส่วนขยาย X509v3" เซสชันของ ตัวอย่าง. crt
อย่าลังเลที่จะบังคับให้ใช้รหัสผ่านหากจำเป็น หรือเพื่อแก้ไขการจำลองของฉัน example_ca.crt ฉันได้อธิบายพื้นฐานอย่างง่ายๆ
อัปเดต:
server.cnf
# การกำหนดค่า OpenSSL สำหรับใบรับรองเอนทิตี
[ ต้องการ ]
พรอมต์ = ไม่
string_mask = ค่าเริ่มต้น
default_bits = 2048
Distinuous_name = req_distinuous_name
x509_extensions = x509_ext
[ req_distinguished_name ]
ชื่อสามัญ = example.org
[ x509_ext ]
keyUsage=สำคัญ,digitalSignature,keyAgreement
subjectAltName = @alt_names
สามารถใช้ชื่อสำรองได้หลายชื่อ
[alt_names]
DNS.1 = example.org
IP.1 = 127.0.0.1
# DNS.2 = altName.example.com