为 OpenLDAP 配置 StartTLS。
- Ubuntu 服务器 16.04
- 拍打2.4.42+dfsg-2ubuntu3.2
我有自己的内部证书颁发机构提供证书。
我已经设置了证书和密钥:在 /etc/ssl/certs 中:
-rw-r----- 1 root ssl-cert 3268 Jul 14 23:02 ldaptest.roenix.net.cert.pem
lrwxrwxrwx 1 root root 51 Jul 2 13:22 roenix.ca.cert.pem -> /usr/local/share/ca-certificates/roenix.ca.cert.crt
在 /etc/ssl/private 中:
-rw-r----- 1 root ssl-cert 3243 Jul 14 23:01 ldaptest.roenix.net.key.pem
我已正确设置主机名:
@ldaptest:/etc/ssl/certs$ hostname -f
ldaptest.roenix.net
我尝试使用此 LDIF 将配置添加到 slapd:
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/roenix.ca.cert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldaptest.roenix.net.cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldaptest.roenix.net.key.pem
使用命令:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
我收到此错误:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
非常感谢任何帮助!
我通过更改 file.ldif 中的顺序解决了这个问题,如下所示:
我运行了命令
确保有一个 acl 使根有资格通过使用 SASL 绑定进行身份验证进行更改。
要确保更改已完成,请运行此命令
我有同样的问题。证书存储在
/opt/local/cert
.您必须将此目录添加到已解析文件的列表中
/etc/apparmor.d/local/usr.sbin.slapd
:此错误也可能是权限错误。例如,如果执行此命令
然后
但是在使用 setfacl 将读取密钥文件的权限授予 openldap 用户之后(证书通常是所有人可读的 644)
所有作品
我解决了这个问题,只是按照正确的顺序使用第一个密钥,然后是证书。它对我有用。
问题也可能是 SELinux 阻止 slapd 读取 .key 和 .cert 文件。请为文件添加策略,不要关闭 SELinux。
SELinux 有问题。使用工具集疑难解答。
托马斯的评论让我走上了正轨。
问题的原因:我没有意识到 /etc/ssl/certs/roenix.ca.cert.crt 实际上是 /usr/local/share/ca-certificates/roenix.ca.cert.crt 的符号链接。
解决方案:在 /usr/local/share/ca-certificates 中的实际证书文件上设置正确的权限。
还阅读了其他评论并学到了很多东西!谢谢大家。