ldapsearch 讀取證書並對其撒謊,因此無法連接
我正在把我的頭髮拉出來,因為 ldap 與 SSL/TLS 配合得很好。我可以確認伺服器正在偵聽並在埠 636 上響應 SSL 請求。
openssl s_client -connect freia.fqdn:636 -showcerts
產生預期的輸出,gnutls-cli-debug -p636 localhost
產生this。該伺服器是從原始碼建構的,因為來自 ubuntu 儲存庫的版本有一些錯誤的配置並且沒有完成安裝。伺服器正在使用slapd -d -1 -h 'ldap:/// ldaps:///'
Snipped bootup log here命令執行。ldapsearch -H ldap:///
也產生預期的輸出。ldapsearch -H ldaps:///
返回
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1) ldapsearch -Z -H ldaps:///
返回
ldap_start_tls: Can't contact LDAP server (-1) ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
伺服器日誌說:
TLS trace: SSL_accept:before/accept initialization tls_read: want=11, got=0 TLS: can't accept: (unknown)
由於沒有發送任何內容,我檢查了 ldapsearch 真正發送的內容。它說它找不到pem文件
TLS: could not load verify locations (file:`/etc/ssl/private/freia_slapd_key.pem',dir:`').
根據以下內容,這完全是胡說八道
strace ldapsearch -Z -H ldaps:/// -d -1
:open("/etc/ssl/private/freia_slapd_key.pem", O_RDONLY|O_LARGEFILE) = 4 fstat64(4, {st_mode=S_IFREG|0440, st_size=883, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb770b000 read(4, "-----BEGIN RSA PRIVATE KEY-----\n"..., 4096) = 883 read(4, "", 4096) = 0 close(4) = 0 munmap(0xb770b000, 4096) = 0 write(2, "TLS: could not load verify locat"..., 91TLS: could not load verify locations (file:`/etc/ssl/private/freia_slapd_key.pem',dir:`').
所有證書都是可讀的(或應該是)
-rw-r--r-- 1 root root 1082 2011-12-26 16:50 /etc/ssl/certs/cacert.pem -rw-r--r-- 1 root root 1013 2011-12-26 16:51 /etc/ssl/certs/freia_slapd_cert.pem -r--r----- 1 root root 883 2011-12-26 16:50 /etc/ssl/private/freia_slapd_key.pem
任何想法都將不勝感激!乾杯。Slapd.conf和ldap.conf
問題出在 ldap.conf 中:
TLS_CACERT /etc/ssl/private/freia_slapd_key.pem
您在應該使用根證書的地方使用****私鑰。在一般情況下,將其替換為適當的 CA 證書 - ldapsearch 可以用作可信“根”的證書來確認它在途中遇到的所有其他(“不可信”)證書。
如果您的 /etc/ssl/certs/freia_slapd_ cert .pem(不是 /etc/ssl/private/freia_slapd_key .pem)是自簽名的,這意味著它是自己的根,您可以/應該將其用作 TLS_CACERT。但這意味著它永遠不會被公眾信任,而是使用已知的“根”(如 Verisign 等 CA)。
順便說一句,TLS_KEY 和 TLS_CERT 在放置在系統範圍的 ldap.conf 中時(正確地)被忽略。請參閱http://manpages.ubuntu.com/manpages/natty/man5/ldap.conf.5.html