LDAPS:即使从根目录中删除 CA 证书,openldap 绑定也成功

问题描述

在我的代码中,我使用 openldap 库将 tls 启动到 ldap 服务器。 使用全局 LDAP_OPT_X_TLS_CACERTDIR 选项设置 ca 证书目录。 ldap_set_option(NULL,LDAP_OPT_X_TLS_CACERTDIR,"");

现在, 第 1 步:正确的证书到位并且 ldap_sasl_bind_sto ldap 服务器成功(如预期)。

第 2 步:我从目录中删除证书,因为我不希望 openldap 使用旧证书,但即使在此之后绑定也会成功。

如果证书加载到 openldap 的缓存中,我无法找到任何重置它的方法

我的问题完全相同:starttls successful even after deleting CA from the ca dir

解决方法

通过重新初始化 TLS 上下文找到了解决方案。

int is_server = 0; ldap_set_option(NULL,LDAP_OPT_X_TLS_NEWCTX,&is_server);