从 CA 向 Samba 添加 SSL 证书

从 CA 向 Samba 添加 SSL 证书

我有一个来自 A CA 的通配符 SSL 证书,我正尝试让它在我的 Samba ADDC 上运行。当 smb.conf 如下所示时,Samba 将在 Samba 重启时失败:

    tls enabled  = yes
    tls keyfile  = tls/mycert.crt
    tls certfile = tls/thekey.p7b
    tls cafile   = tls/myca.ca-bundle
    # client ldap sasl wrapping = sign and seal
    ldap server require strong auth = allow_sasl_over_tls

它失败并显示“TLS 无法初始化证书文件...和密钥文件”尝试验证证书也返回此错误

错误 20 位于 0 深度查找:无法获取本地颁发者证书错误验证失败

还将文件转换为 PEM 文件并尝试了,但是当它不起作用时将它们切换回来。

任何帮助都将不胜感激,谢谢!

答案1

你似乎误读了samba conf 文件的手册页。您的配置中需要调整以下选项:

tls 密钥文件 (G)

此选项可设置为包含 RSA 私钥的文件(PEM 格式)。此文件必须无需密码短语即可访问,即它不得加密。

如果路径不以 / 开头,则此路径相对于私有目录。

默认值:tls keyfile = tls/key.pem

您已将其设置为tls/mycert.crt。而名为证书以...结尾的.crt可能是私钥,我怀疑它实际上是你的证书。

您应该用私钥文件替换它。

您应该之前已经创建(或可能从 CA 收到)私钥文件。您可以使用cat my.key(插入正确的名称)验证此文件是否为 PEM 格式,如果是 PEM 格式,则它将以-----BEGIN PRIVATE KEY-----(或可能-----BEGIN RSA PRIVATE KEY-----)开头。如果在查看文件时它显示为文本和不可打印字符的混合,则该文件为 DER 格式,您需要借助 OpenSSL 等工具将此文件转换为 PEM。


tls 证书文件 (G)

此选项可以设置为包含 RSA 证书的文件(PEM 格式)。

如果路径不以 / 开头,则此路径相对于私有目录。

默认值:tls certfile = tls/cert.pem

您已将其设置为tls/thekey.p7b。同样,当名为钥匙.p7b扩展名的可能是 PEM 编码的证书,我怀疑它是 PKCS#7 格式的证书或证书包。

您应该用证书文件替换它。

我建议这应该是tls/mycert.crt,但前提是该文件是 PEM 格式。您可以使用cat mycert.crtwhere 来验证这一点,如果它是 PEM 格式,它将以 开头-----BEGIN CERTIFICATE-----。至于私钥,OpenSSL 可以帮助您在格式之间进行转换。


如果文件是 PEM 格式的 CA 证书的串联,则可能是正确的。再次使用查看tls cafile = tls/myca.ca-bundle文件,它应该包含一个或多个以 开头的块。myca.ca-bundlecat-----BEGIN CERTIFICATE-----


如果您修复了上述问题,Samba LDAPS 应该能够正常工作。但是请注意,此警告在 Samba wiki 上。

相关内容