我正在尝试连接到多个不同的 LDAPS 服务器。我看到的许多文档都建议设置TLS_REQCERT never
,但我觉得不验证证书非常不安全。所以我将其设置为demand
。
我看过的所有文档都说我需要使用指向 .pem 文件的 TLS_CACERT 指令来更新 ldap.conf。我已经使用来自 LDAP 服务器 #1 的证书设置了该 .pem 文件,并且 ldaps 连接正常。
我现在必须与组织中另一个分支机构的另一个 LDAP 服务器进行安全通信,该服务器使用不同的证书。我没有看到有关如何执行此操作的任何文档,只有 1 页说我可以简单地将多个(非链式)证书放在同一个 .pem 文件中。我已经这样做了,一切都很顺利。
然而,当我告诉同事我的所作所为时,他听起来好像天要塌下来了——将 2 个非链式证书放入一个 .pem 文件中显然是有史以来最糟糕的事情。
有没有更可接受的方法来做到这一点?或者这是唯一可接受的方法?
答案1
捆绑不相关的证书并不是一种罕见的做法。这是RedHat
管理其 CA 的方式。但是,这种方法可能会使删除您不再希望信任的证书变得更加困难。也许您想使用散列证书目录方法。这是管理其 CA 的方式debian
。
- 将您的证书放入单个目录中(例如
/etc/ldap/cacerts
)。 c_rehash
使用root
针对您的 CA 证书目录的权限运行(例如sudo c_rehash /etc/ldap/cacerts
)。- 删除您的 TLS_CACERT 选项并设置
TLS_CACERTDIR
为指向您的 CA 证书目录。 c_rehash
请记住,每次添加证书时都运行,sudo find -L /etc/ldap/cacerts -type l -exec rm {} +
每次删除证书时都运行。(重新运行命令而不做任何更改不会产生任何不良影响,但毫无意义。)