Tôi đang cố định cấu hình Apache httpd v2.4 để xác thực LDAP cho AD. Chứng chỉ LDAPS được cấp bởi CA nội bộ. Vì bất kỳ lý do gì (tôi không thuộc nhóm AD), cả môi trường sản xuất hoặc không sản xuất của chúng tôi đều không xuất bản toàn bộ chuỗi.
Non-prod gửi máy chủ và chứng chỉ trung gian, nhưng không gửi chứng chỉ gốc. Tôi có thể kết nối thành công qua Apache với:
LDAPerifyServerCert Bật
LDAPTrustedGlobalCert CA_BASE64 chain.crt
# $cat trung gian.pem root.pem > chain.crt
Thật không may, prod chỉ gửi chứng chỉ máy chủ. Không có trung gian (nhà phát hành) và không có gốc. Cung cấp cùng một chuỗi chứa tổ chức phát hành và gốc không hoạt động. Tôi đã thử mọi thứ tôi có thể nghĩ ra: chỉ chứng chỉ máy chủ, chỉ int, máy chủ + int, máy chủ + int + root, nhưng không có cái nào hoạt động, cả trong Apache hoặc thử nghiệm với openssl s_client -connect $x -CAfile $y
.
Rõ ràng, tùy chọn tốt nhất là yêu cầu nhóm AD xuất bản toàn bộ chuỗi, nhưng có cách nào khác để xác minh kết nối (ngoài việc tắt xác minh) không?
Chỉnh sửa:
Đây là đầu ra của openssl s_client -connect devldap.company.com:636 -CAfile int+root.pem
:
ĐÃ KẾT NỐI(00000003)
độ sâu = 2 CN = CA gốc của công ty
xác minh trả lại: 1
độ sâu=1 DC = com, DC = công ty CN = Công ty trung gian CA
xác minh trả lại: 1
depth=0 C = US, ST = State, O = Company, OU = OTS, CN = devldap.company.com
xác minh trả lại: 1
---
Chuỗi chứng chỉ
0 s:C = US, ST = Bang, O = Công ty, OU = OTS, CN = devldap.company.com
i:DC = com, DC = công ty CN = CA trung gian của công ty
1 s:DC = com, DC = công ty CN = CA trung gian của công ty
i:CN = CA gốc của công ty
---
Chứng chỉ máy chủ
-----BẮT ĐẦU GIẤY CHỨNG NHẬN----
MIIH8TCCBtmgAwIBAgITTQACdEm5xkCMTnqGDQAAAAJ0STANBgkqhkiG9w0BAQsF
...
jce8VpEUyZKDClUrcyRBSxd0rq2I
-----GIẤY CHỨNG NHẬN KẾT THÚC-----
chủ đề=C = US, ST = Bang, O = Công ty, OU = OTS, CN = devldap.company.com
nhà phát hành=DC = com, DC = công ty CN = CA trung gian của công ty
---
Không có tên CA chứng chỉ ứng dụng khách nào được gửi
Các loại chứng chỉ ứng dụng khách: ký hiệu RSA, ký hiệu DSA, ký hiệu ECDSA
Thuật toán chữ ký được yêu cầu: RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1:RSA+SHA512:ECDSA+SHA512
Thuật toán chữ ký được yêu cầu chia sẻ: RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:RSA+SHA512:ECDSA+SHA512
Thông báo ký ngang hàng: SHA256
Loại chữ ký ngang hàng: RSA
Khóa tạm thời máy chủ: ECDH, P-384, 384 bit
---
Bắt tay SSL đã đọc 4639 byte và ghi 486 byte
Xác minh: OK
---
Mới, TLSv1.2, Mật mã là ECDHE-RSA-AES256-GCM-SHA384
Khóa công khai của máy chủ là 2048 bit
Đàm phán lại an toàn IS được hỗ trợ
Nén: KHÔNG CÓ
Mở rộng: KHÔNG CÓ
Không có ALPN nào được thương lượng
Phiên SSL:
Giao thức: TLSv1.2
Mã: ECDHE-RSA-AES256-GCM-SHA384
ID phiên: F90...411
Phiên-ID-ctx:
Khóa chính: 985...D1E
Danh tính PSK: Không có
Gợi ý nhận dạng PSK: Không có
Tên người dùng SRP: Không có
Thời gian bắt đầu: 1651420792
Thời gian chờ: 7200 (giây)
Xác minh mã trả về: 0 (ok)
Bí mật tổng thể mở rộng: có
---
XONG
Và đối với sản phẩm, openssl s_client -connect ldap.company.com:636 -CAfile int+root.pem
:
ĐÃ KẾT NỐI(00000003)
độ sâu=0 C = US, ST = Bang, O = Công ty, CN = ldap.company.com
xác minh lỗi:num=20:không thể lấy chứng chỉ nhà phát hành địa phương
xác minh trả lại: 1
độ sâu=0 C = US, ST = Bang, O = Công ty, CN = ldap.company.com
lỗi xác minh: num=21: không thể xác minh chứng chỉ đầu tiên
xác minh trả lại: 1
độ sâu=0 C = US, ST = Bang, O = Công ty, CN = ldap.company.com
xác minh trả lại: 1
---
Chuỗi chứng chỉ
0 s:C = US, ST = Bang, O = Công ty, CN = ldap.company.com
i:DC = com, DC = công ty CN = CA trung gian của công ty
---
Chứng chỉ máy chủ
-----BẮT ĐẦU GIẤY CHỨNG NHẬN----
MIIHXzCCBkegAwIBAgITTQADO1BEj8rlaKH+eQAAAAM7UDANBgkqhkiG9w0BAQsF
...
FGBKggzc3AK2pcHT9E3f46Oy+A==
-----GIẤY CHỨNG NHẬN KẾT THÚC-----
chủ đề=C = Hoa Kỳ, ST = Tiểu bang, O = Công ty, CN = ldap.company.com
nhà phát hành=DC = com, DC = công ty CN = CA trung gian của công ty
---
Không có tên CA chứng chỉ ứng dụng khách nào được gửi
---
Bắt tay SSL đã đọc 2059 byte và ghi 655 byte
Lỗi xác minh: không thể xác minh chứng chỉ đầu tiên
---
Mới, SSLv3, Mật mã là AES256-SHA
Khóa công khai của máy chủ là 2048 bit
Đàm phán lại an toàn KHÔNG được hỗ trợ
Nén: KHÔNG CÓ
Mở rộng: KHÔNG CÓ
Không có ALPN nào được thương lượng
Phiên SSL:
Giao thức: TLSv1.2
Mã: AES256-SHA
ID phiên: 33B...377
Phiên-ID-ctx:
Khóa chính: A5D...ACE
Danh tính PSK: Không có
Gợi ý nhận dạng PSK: Không có
Tên người dùng SRP: Không có
Thời gian bắt đầu: 1651420815
Thời gian chờ: 7200 (giây)
Xác minh mã trả lại: 21 (không thể xác minh chứng chỉ đầu tiên)
Bí mật tổng thể mở rộng: không
---
XONG
Chỉnh sửa: Hóa ra tệp có tên "int.pem" thực sự là chứng chỉ máy chủ từ một dự án khác. gọn gàng. Ước gì tôi đã kiểm tra điều đó trước khi lãng phí quá nhiều thời gian vào việc này. Với một chuỗi chứa chứng chỉ CA trung gian thực tế và gốc, nó sẽ xác minh thành công.