1.8. TLS 协议
在对 OpenLDAP 服务器进行身份验证时,最好使用加密会话来进行。 这可以使用传输层安全性 (TLS) 来完成。
在这里,我们将成为我们自己 证书颁发机构 然后以该 CA 的身份创建并签署我们的 LDAP 服务器证书。 由于 slapd 是使用 gnutls 库编译的,我们将使用 certtool 实用程序来完成这些任务。
1. 安装 gnutls-bin 和 ssl-cert 包:
sudo apt 安装 gnutls-bin ssl-cert
2. 为证书颁发机构创建私钥:
须藤 sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
3. 创建模板/文件 /etc/ssl/ca.info 定义 CA:
cn = 示例公司 ca
证书签名密钥
4. 创建自签名 CA 证书:
须藤 certtool --generate-self-signed \
--load-privkey /etc/ssl/private/cakey.pem \
--模板/etc/ssl/ca.info \
--outfile /etc/ssl/certs/cacert.pem
5. 为服务器制作私钥:
4 http://manpages.ubuntu.com/manpages/en/man5/slapd.access.5.html
须藤 certtool --generate-privkey \
--位 1024 \
--outfile /etc/ssl/private/ldap01_slapd_key.pem
更换 LDAP01 在带有服务器主机名的文件名中。 为将使用它们的主机和服务命名证书和密钥将有助于使事情变得清晰。
6. 创建 /etc/ssl/ldap01.info 信息文件包含:
组织 = 示例公司 cn = ldap01.example.com tls_www_server
加密密钥签名密钥到期天数 = 3650
以上证书有效期为10年。 相应调整。
7. 创建服务器的证书:
须藤 certtool --generate-certificate \
--load-privkey /etc/ssl/private/ldap01_slapd_key.pem \
--load-ca-certificate /etc/ssl/certs/cacert.pem \
--load-ca-privkey /etc/ssl/private/cakey.pem \
--模板/etc/ssl/ldap01.info \
--outfile /etc/ssl/certs/ldap01_slapd_cert.pem
8、调整权限和所有权:
sudo chgrp openldap /etc/ssl/private/ldap01_slapd_key.pem sudo chmod 0640 /etc/ssl/private/ldap01_slapd_key.pem sudo gpasswd -a openldap ssl-cert
9. 现在重新启动 slapd,因为我们将 'openldap' 用户添加到了 'ssl-cert' 组:
须藤 systemctl 重启 slapd.service
您的服务器现在已准备好接受新的 TLS 配置。
创建文件 证书信息文件 具有以下内容(相应调整,我们的示例假设我们使用 https://www.cacert.org 创建了证书):
dn:cn=配置
添加:olcTLSCACertificateFile olcTLSCACertificateFile:/etc/ssl/certs/cacert.pem
-
添加:olcTLSCertificateFile
olcTLSCertificateFile:/etc/ssl/certs/ldap01_slapd_cert.pem
-
添加:olcTLSCertificateKeyFile
olcTLSCertificateKeyFile:/etc/ssl/private/ldap01_slapd_key.pem
使用 ldapmodify 命令通过 slapd-config 数据库告诉 slapd 我们的 TLS 工作:
须藤 ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
与流行的看法相反,您不需要 ldap:// in / etc /默认/打 为了使用加密。 你应该只是:
SLAPD_SERVICES="ldap:/// ldapi:///"
不推荐使用 LDAP over TLS/SSL (ldaps://) 以支持 启动TLS. 后者是指现有的 LDAP 会话(在 TCP 端口 389 上侦听)受到 TLS/SSL 的保护,而 LDAPS 与 HTTPS 一样,是一种独特的从一开始就加密的协议,它在 TCP 端口 636 上运行。