1.8. 将目录服务器使用的 CA 证书添加到 Red Hat Enterprise Linux 的信任存储中
当您在 Directory 服务器中启用 TLS 加密时,您可以将实例配置为使用 CA 发布的证书。如果一个客户端现在使用 LDAPS 协议或使用 STARTTLS
命令通过 LDAP 建立到服务器的连接,则 Directory 服务器会使用这个证书来加密连接。客户端实用程序使用 CA 证书来验证服务器证书是否有效。默认情况下,如果这些工具不信任服务器证书,则这些实用程序会取消连接。
例 1.1. 如果客户端实用程序不使用 CA 证书,则可能的连接错误
dsconf
#
dsconf -D "cn=Directory Manager" ldaps://server.example.com:636 config get
Error: {'desc': "Can't contact LDAP server", 'info': 'error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed (self signed certificate in certificate chain)'}ldapsearch
#
ldapsearch -H ldaps://server.example.com:636 -D "cn=Directory Manager" -W -b "dc=example,dc=com" -x
Enter LDAP Password: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
要在 Red Hat Enterprise Linux 上启用客户端实用程序来验证证书目录服务器使用,请将 CA 证书添加到操作系统的信任存储中。
前提条件
您知道网络安全服务(NSS)数据库的密码。
如果您仍然使用在 Directory Server 实例安装过程中生成的密码,您可以在
/etc/dirsrv/slapd-instance_name/pwdfile.txt
文件中找到此密码。
流程
如果您没有 Directory 服务器使用的 CA 证书的本地副本:
列出服务器网络安全服务(NSS)数据库中的证书:
#
certutil -d /etc/dirsrv/slapd-instance_name/ -L
Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI Example CA C,, Server-Cert u,u,u使用 NSS 数据库中 CA 证书的别名导出 CA 证书:
#
certutil -d /etc/dirsrv/slapd-instance_name/ -L -n "Example CA" -a > /tmp/ds-ca.crt
将 CA 证书复制到
/etc/pki/ca-trust/source/anchors/
目录中:#
cp /tmp/ds-ca.crt /etc/pki/ca-trust/source/anchors/
重建 CA 信任数据库:
#
update-ca-trust
验证
使用 LDAPS 协议建立与目录服务器的连接。例如,运行查询:
#
ldapsearch -H ldaps://server.example.com:636 -D "cn=Directory Manager" -W -b "dc=example,dc=com" -x -s base
其他资源
-
update-ca-trust (8)
man page