ฉันกำลังพยายามกำหนดค่า Apache httpd v2.4 สำหรับการตรวจสอบสิทธิ์ LDAP เป็น AD ใบรับรอง LDAPS ออกโดย CA ภายใน ไม่ว่าจะด้วยเหตุผลใดก็ตาม (ฉันไม่ได้อยู่ในทีม AD) ทั้งสภาพแวดล้อมผลิตภัณฑ์หรือผลิตภัณฑ์ที่ไม่ใช่ผลิตภัณฑ์ของเราจะเผยแพร่ห่วงโซ่ทั้งหมด
ไม่ใช่ผลิตภัณฑ์ส่งเซิร์ฟเวอร์และใบรับรองกลาง แต่ไม่ใช่รูท ฉันสามารถเชื่อมต่อผ่าน Apache ได้สำเร็จด้วย:
เปิด LDAPVerify ServerCert
LDAPTเชื่อถือ GlobalCert CA_BASE64 chain.crt
# $cat intermediate.pem root.pem > chain.crt
น่าเสียดายที่ผลิตภัณฑ์ส่งใบรับรองเซิร์ฟเวอร์เท่านั้น ไม่มีตัวกลาง (ผู้ออก) และไม่มีราก การระบุห่วงโซ่เดียวกันที่มีผู้ออกและรูทไม่ทำงาน ฉันได้ลองทุกสิ่งที่ฉันนึกออก: ใบรับรองเซิร์ฟเวอร์เท่านั้น, int เท่านั้น, เซิร์ฟเวอร์ + int, เซิร์ฟเวอร์ + int + รูท แต่ไม่ทำงานเลยทั้งใน Apache หรือการทดสอบด้วย opensl s_client -เชื่อมต่อ $x -CAfile $y
.
แน่นอนว่าตัวเลือกที่ดีที่สุดคือการให้ทีม AD เผยแพร่ห่วงโซ่ทั้งหมด แต่มีวิธีอื่นในการตรวจสอบการเชื่อมต่อ (นอกเหนือจากการปิดใช้งานการตรวจสอบ) หรือไม่
แก้ไข:
นี่คือผลลัพธ์ของ openssl s_client -เชื่อมต่อ devldap.company.com:636 -CAfile int+root.pem
:
เชื่อมต่อแล้ว(00000003)
ความลึก=2 CN = CA หลักของบริษัท
ตรวจสอบผลตอบแทน:1
ความลึก=1 DC = com, DC = บริษัท CN = CA ระดับกลางของบริษัท
ตรวจสอบผลตอบแทน:1
เชิงลึก=0 C = สหรัฐอเมริกา ST = รัฐ O = บริษัท OU = OTS CN = devldap.company.com
ตรวจสอบผลตอบแทน:1
---
ห่วงโซ่ใบรับรอง
0 วินาที:C = สหรัฐอเมริกา ST = รัฐ O = บริษัท OU = OTS CN = devldap.company.com
i:DC = com, DC = company CN = CA ระดับกลางของบริษัท
1 วินาที:DC = com, DC = บริษัท CN = CA ระดับกลางของบริษัท
i:CN = CA หลักของบริษัท
---
ใบรับรองเซิร์ฟเวอร์
-----เริ่มต้นใบรับรอง-----
MIIH8TCCBtmgAwIBAgITTQACdEm5xkCMTnqGDQAAAAJ0STANBgkqhkiG9w0BAQsF
...
jce8VpEUyZKDClUrcyRBSxd0rq2I
-----จบใบรับรอง-----
เรื่อง=C = สหรัฐอเมริกา ST = รัฐ O = บริษัท OU = OTS CN = devldap.company.com
ผู้ออก = DC = com, DC = บริษัท CN = CA ระดับกลางของบริษัท
---
ไม่มีการส่งชื่อ CA ของใบรับรองไคลเอ็นต์
ประเภทใบรับรองลูกค้า: เครื่องหมาย RSA, เครื่องหมาย DSA, เครื่องหมาย ECDSA
ขออัลกอริทึมลายเซ็น: RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1:RSA+SHA512:ECDSA+SHA512
อัลกอริทึมลายเซ็นที่ขอร่วมกัน: RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:RSA+SHA512:ECDSA+SHA512
สรุปการลงนามเพียร์: SHA256
ประเภทลายเซ็นเพียร์: RSA
คีย์อุณหภูมิเซิร์ฟเวอร์: ECDH, P-384, 384 บิต
---
SSL handshake อ่าน 4639 ไบต์และเขียน 486 ไบต์
การยืนยัน: ตกลง
---
ใหม่, TLSv1.2, Cipher คือ ECDHE-RSA-AES256-GCM-SHA384
รหัสสาธารณะของเซิร์ฟเวอร์คือ 2048 บิต
รองรับการเจรจาต่อรองใหม่อย่างปลอดภัย
การบีบอัด: ไม่มี
การขยายตัว: ไม่มี
ไม่มีการเจรจา ALPN
เซสชัน SSL:
โปรโตคอล : TLSv1.2
รหัส : ECDHE-RSA-AES256-GCM-SHA384
รหัสเซสชัน: F90...411
เซสชัน-ID-ctx:
มาสเตอร์คีย์: 985...D1E
ตัวตน PSK: ไม่มี
คำใบ้ประจำตัว PSK: ไม่มี
ชื่อผู้ใช้ SRP: ไม่มี
เวลาเริ่มต้น: 1651420792
หมดเวลา : 7200 (วินาที)
ตรวจสอบรหัสส่งคืน: 0 (ตกลง)
ความลับหลักเพิ่มเติม: ใช่
---
เสร็จแล้ว
และสำหรับผลิตภัณฑ์ openssl s_client -เชื่อมต่อ ldap.company.com:636 -CAfile int+root.pem
:
เชื่อมต่อแล้ว(00000003)
เชิงลึก=0 C = สหรัฐอเมริกา ST = รัฐ O = บริษัท CN = ldap.company.com
ตรวจสอบข้อผิดพลาด: num=20: ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น
ตรวจสอบผลตอบแทน:1
เชิงลึก=0 C = สหรัฐอเมริกา ST = รัฐ O = บริษัท CN = ldap.company.com
ตรวจสอบข้อผิดพลาด:num=21:ไม่สามารถตรวจสอบใบรับรองแรก
ตรวจสอบผลตอบแทน:1
เชิงลึก=0 C = สหรัฐอเมริกา ST = รัฐ O = บริษัท CN = ldap.company.com
ตรวจสอบผลตอบแทน:1
---
ห่วงโซ่ใบรับรอง
0 วินาที:C = สหรัฐอเมริกา ST = รัฐ O = บริษัท CN = ldap.company.com
i:DC = com, DC = company CN = CA ระดับกลางของบริษัท
---
ใบรับรองเซิร์ฟเวอร์
-----เริ่มต้นใบรับรอง-----
MIIHXzCCBkegAwIBAgITTQADO1BEj8rlaKH+eQAAAAM7UDANBgkqhkiG9w0BAQsF
...
FGBKggzc3AK2pcHT9E3f46Oy+A==
-----จบใบรับรอง-----
เรื่อง=C = สหรัฐอเมริกา ST = รัฐ O = บริษัท CN = ldap.company.com
ผู้ออก = DC = com, DC = บริษัท CN = CA ระดับกลางของบริษัท
---
ไม่มีการส่งชื่อ CA ของใบรับรองไคลเอ็นต์
---
SSL handshake อ่าน 2059 ไบต์และเขียน 655 ไบต์
ข้อผิดพลาดในการยืนยัน: ไม่สามารถตรวจสอบใบรับรองใบแรกได้
---
ใหม่, SSLv3, Cipher เป็น AES256-SHA
รหัสสาธารณะของเซิร์ฟเวอร์คือ 2048 บิต
ไม่รองรับการเจรจาใหม่ที่ปลอดภัย
การบีบอัด: ไม่มี
การขยายตัว: ไม่มี
ไม่มีการเจรจา ALPN
เซสชัน SSL:
โปรโตคอล : TLSv1.2
รหัส : AES256-SHA
รหัสเซสชัน: 33B...377
เซสชัน-ID-ctx:
มาสเตอร์คีย์: A5D...ACE
ตัวตน PSK: ไม่มี
คำใบ้ประจำตัว PSK: ไม่มี
ชื่อผู้ใช้ SRP: ไม่มี
เวลาเริ่มต้น: 1651420815
หมดเวลา : 7200 (วินาที)
ตรวจสอบรหัสส่งคืน: 21 (ไม่สามารถตรวจสอบใบรับรองใบแรกได้)
ความลับหลักเพิ่มเติม: ไม่
---
เสร็จแล้ว
แก้ไข: ปรากฎว่าไฟล์ชื่อ "int.pem" เป็นใบรับรองเซิร์ฟเวอร์จากโครงการอื่น นีโต้. หวังว่าฉันจะได้ตรวจสอบก่อนที่จะเสียเวลามากกับเรื่องนี้ ด้วยเชนที่มีใบรับรอง CA ระดับกลางและรูทจริง จึงจะยืนยันได้สำเร็จ