FusionDirectory:带有 SSL 或 TLS 的 OpenLDAP

FusionDirectory:带有 SSL 或 TLS 的 OpenLDAP

我在网上查找了很多关于如何为 OpenLDAP 设置 TLS 的信息。基本思路是添加 olcTLS 项以包括 cert、key、c​​acert cn=config

然而,融合目录,尝试使用时ldapmodify告诉我cn=config不存在,当我尝试创建时cn=config,它告诉我(以 LDAP 管理员身份登录)我没有创建它的权限。我当时正在关注这些指示。

因此我编辑了文件/etc/ldap/slapd.d/cn=config.ldif并添加了以下项目:

olcTLSCACertificate: /etc/ssl/certs/ca.cert
olcTLSCertificateFile: /etc/ssl/certs/fd.cert
olcTLSCertificateKeyFile: /etc/ssl/private/fd.key
olcTLSCipherSuite: SECURE256
olcTLSVerifyClient: try

我还进行了编辑/etc/default/slapd以包括SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

  • 我将 openldap 用户添加到 ssl-cert 组。
  • 我重新启动了 slapd。
  • 使用 ldapvi,cn=config找不到。
  • slapcat -n0 | grep -i tls显示我强制添加到文件中的 olcTLS* 条目。
  • 使用 Wireshark,我可以看到,当客户端请求 START_TLS 时,服务器说没问题,并显示支持的密码。客户端开始 SSL Hello,服务器以 TCP FIN 进行响应。
  • nmap显示端口 389 和 636 已打开,还显示证书信息(颁发者:commonName=MyServer/organizationName=Testing)、公钥类型:rsa、公钥位:4096,以及证书的 MD5 和 SHA1 哈希值。因此它能够读取证书和密钥,权限正常。

但是 SSL (636) 和 TLS(389) 连接失败。未加密的 389 连接工作正常,只是在 Wireshark 中我看到了太多信息,这让我很不舒服。

那么这到底是怎么回事?

  • 操作系统是 Debian Jessie 8.7
  • FusionDirectory 1.0.20
  • OpenLDAP 2.4.40
  • 使用以下方式创建的证书诺明特带有 TLS 扩展。

2017 年 5 月 15 日编辑:

我运行openssl s_client -connect host.local -showcerts后它显示了证书、协商密码等等。

Client Certificate Types: RSA sign, DSA sign, ECDSA sign
Requested Signature Algorithms: 
RSA+SHA384:ECDSA+SHA384:RSA+SHA512:ECDSA+SHA512
Shared Requested Signature Algorithms: 
RSA+SHA384:ECDSA+SHA384:RSA+SHA512:ECDSA+SHA512
Peer signing digest: SHA512
Server Temp Key: ECDH, P-521, 521 bits
---
SSL handshake has read 4512 bytes and written 511 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 5120 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 37EAADA00459F296BE972FB57B4A5....
    Session-ID-ctx: 
    Master-Key: 0F865CBEDA755F84E783.....
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1494883911
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---

但是,ldapsearch不起作用:

# ldapsearch -H ldaps://host.local:636 -xLL -v
ldap_initialize( ldaps://host.local:636/??base )
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

因此 SSL 部分可以工作,但其余部分则不行。

相关内容