我用ldap把头发拉出来,用SSL / TLS打好。 我可以确认服务器正在监听端口636并响应SSL请求。 openssl s_client -connect freia.fqdn:636 -showcerts产生预期的输出, gnutls-cli-debug -p636 localhost产生这个 。 服务器已经从源码开始构build,因为ubuntu的版本库有一些错误的configuration,并没有完成安装。 服务器正在使用命令slapd -d -1 -h 'ldap:/// ldaps:///' -h'ldap slapd -d -1 -h 'ldap:/// ldaps:///' 在此处裁剪启动日志。 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真的在发送什么。 它说它无法findpem文件
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
您应该使用根证书的私钥。 在一般情况下,请将其replace为正确的CA证书 – ldapsearch可用作可信“根”的证书,以确认所有在途中遇到的其他(“不可信”)证书。
如果你的/ etc / ssl / certs / freia_slapd_ cert .pem(不是/ etc / ssl / private / freia_slapd_key .pem)是自签名的,这意味着它是自己的根目录,你可以/应该把它用作TLS_CACERT。 但是这意味着它将永远不会被广大公众所信赖,它会使用已知的“根”(CA如Verisign等)。
顺便说一下,放置在系统范围的ldap.conf中时,(正确)忽略TLS_KEY和TLS_CERT。 请参阅http://manpages.ubuntu.com/manpages/natty/man5/ldap.conf.5.html