Samba 4 上的 SSL 自签名证书错误

Samba 4 上的 SSL 自签名证书错误

我目前正在准备将办公室迁移到 Samba 4,并且实验室网络遇到了问题。在 Debian 9 服务器上安装了 Samba 4 AD DC,到目前为止运行正常,可以将机器加入域,并使用端口 389 上未加密的 ldap://[IP] 从外部工具访问 Samba 内部 LDAP。

我现在正尝试按照此页面说明通过 SSL/TLS 配置 LDAP 访问:

https://wiki.samba.org/index.php/Configuring_LDAP_over_SSL_(LDAPS)_on_a_Samba_AD_DC

无论我使用自动生成的自签名证书还是创建自定义证书,在验证证书时总是会失败:

openssl verify -verbose cert.pem
[...]
error 18 at 0 depth lookup: self signed certificate
error cert.pem: verification failed

我检查了私钥:

# openssl rsa -check -in key.pem 
RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
[...]
-----END RSA PRIVATE KEY-----

我尝试检查私钥和证书是否对应:

# openssl x509 -noout -modulus -in cert.pem | openssl md5
   (stdin)= ce3ca7afcfe6a02ded1ed83938954940
# openssl rsa -noout -modulus -in key.pem | openssl md5
(stdin)= ce3ca7afcfe6a02ded1ed83938954940

这是我的 smb.conf 文件的全局部分:

tls enabled  = yes
tls keyfile  = tls/key.pem
tls certfile = tls/cert.pem
tls cafile   = tls/ca.pem

我还尝试将自动生成的文件从其原始目标位置移出

/var/lib/samba/private/tls/

/etc/samba/tls/

在 /usr/local/samba/private/tls/

curl 命令回答了这个问题:

#curl ldaps://host.domain.fr
curl: (60) SSL certificate problem: unable to get local issuer certificate

但我成功地连接到

# curl --insecure ldaps://host.domain.fr

# curl --cacert /usr/local/samba/private/tls/ca.pem ldaps://host.domain.fr

好吧,我们热烈欢迎有关配置或故障排除技巧的任何建议!

答案1

好的,我解决了我的问题。

按照此过程为 Samba 4 创建自签名证书

转到自动生成的证书目录,删除现有证书并在同一目录中创建自己的证书。然后重新启动 samba

# cd /usr/local/samba/private/tls ## if you compiled samba from sources
# cd /var/lib/samba/private/tls ## if you installed samba from repos

# rm *.pem
# openssl req -newkey rsa:2048 -keyout myKey.pem -nodes -x509 -days 365 -out myCert.pem

将其添加到您的 /etc/samba/smb.conf

tls enabled  = yes
tls keyfile  = tls/myKey.pem
tls certfile = tls/myCert.pem
tls cafile   = 

然后重启Samba

要使 ldapsearch 命令成功执行,请按照这个话题建议并补充

TLS_REQCERT ALLOW

到您的 ldap.conf 文件。

有一件事让我犯了错误,那就是

openssl verify myCert.pem

在我的配置上永远无法工作(Debian 9.0“Stretch”-OpenSSL 1.1.0f)我在 OpenSSL 1.0.2 下重试了我的密钥,一切正常。我不确定这是由操作系统还是 OpenSSL 版本引起的...

相关内容