Trên Ubuntu 20.04, tôi thấy rằng mình phải tắt TLS1.3 bằng cách cài đặt LDAPTLS_CIPHER_SUITE='NORMAL:!VERS-TLS1.3'
để ldapsearch hoạt động với Google LDAP.
Làm thế nào tôi đến đây:
Lệnh ldapsearch hỗ trợ in gỡ lỗi gia tăng vào bảng điều khiển bằng cách sử dụng lệnh -d mức gỡ lỗi
lá cờ. Gỡ lỗi cấp 1 (-d1
) là đủ đối với tôi, các cấp gỡ lỗi cao hơn sẽ rất dài dòng và khó đọc.
Một lệnh gỡ lỗi đơn giản có thể trông như thế này:
vagrant@focal:~$ ldapsearch -H ldaps://ldap.google.com:636 -d1
Từ đây tôi có thể thấy rằng chứng chỉ không đáng tin cậy:
...
cố gắng kết nối:
kết nối thành công
TLS: chứng chỉ ngang hàng không đáng tin cậy hoặc bị thu hồi (0x42)
TLS: không thể kết nối: (mã lỗi không xác định).
...
Điều này không có ý nghĩa gì. Chứng chỉ do ldap.google.com trả về là hợp lệ và có thể được xác minh đối với chứng chỉ của tôi /etc/ssl/certs/ca-certificates.crt
sử dụng openssl s_client -connect ldap.google.com:636 -CAfile /etc/ssl/certs/ca-certificates.crt
nhưng ldapsearch đã không tin tưởng nó.
cuối cùng tôi đã đi qua bài này trên danh sách gửi thư OpenLDAP đã giải thích vấn đề là do SNI không được hỗ trợ, điều này sẽ khiến Google trả lại chứng chỉ tự ký không hợp lệ. Tôi không thể tìm ra cách khắc phục thích hợp, nhưng cách giải quyết ở phía dưới để tắt TLS1.3 bằng cách đặt LDAPTLS_CIPHER_SUITE
biến môi trường hoạt động với tôi vì OpenLDAP của tôi đang sử dụng GnuTLS. Nếu đang sử dụng OpenSSL, bạn có thể cần tìm một giải pháp thay thế khác, nhưng nguyên nhân gốc rễ có thể vẫn giống nhau.