我在测试域中有一个公开签名的 LDAP over SSL UCC。它包含服务器身份验证 OID 扩展,并且在同一域中的 2008 R2 DC 上工作正常。CSR 是在 2008 R2 服务器上生成的,但包含与域的 FQDN 匹配的主题名称以及 2008 R2 DC 的 FQDN 和 2003 DC 的 FQDN 的 SAN。
当我尝试通过 ldp.exe 从域中的另一个系统使用 SSL 通过端口 636 连接到 2008 R2 DC 时,一切正常。但是,连接到 2003 DC 时返回:
-----------
0x0 = ldap_unbind(ld);
ld = ldap_sslinit("testdc01", 636, 1);
Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);
Error 81 = ldap_connect(hLdap, NULL);
Server error: <empty>
Error <0x51>: Fail to connect to afgtestdc01.
ld = ldap_sslinit("testdc01", 636, 1);
Error 81 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);
Error 81 = ldap_connect(hLdap, NULL);
Server error: <empty>
Error <0x51>: Fail to connect to testdc01.
我已经提出SChannel 日志记录级别设置为“记录信息和成功事件”,这是可用的最详细级别。但是,尝试连接时的唯一事件是36867: Creating an SSL server credential
。
避免已知问题:SChannel 可能会选择错误的证书,我确保该证书是计算机本地个人存储中的唯一证书。我将中间 CA 和根 CA 移至各自的计算机存储。证书在 MMC 中显示为有效。
我错过了什么?
更新:根据 CA 的建议,我创建了一个重复证书,其主题名称与服务器的 FQDN 匹配,而不是在 SAN 中匹配。这并没有产生任何更好的结果。
但是,netstat -n -p tcp
没有显示 636 正在监听,尽管另一台 2003 服务器的 portqry 返回 636 正在监听。我正在调查这可能是什么原因。
我也尝试在 2003 DC 本身上使用 ldp.exe 进行测试,但仍然无法连接。