我们试图执行LDAPS绑定到一个服务器阻止389防火墙,所以所有的stream量必须超过636。
在我们的testing实验室中,我们连接到一个没有防火墙的testingldap(位于同一台服务器上),因此两个端口都是暴露的。 在testing服务器上运行ldp.exe,我们生成了下面的trace,似乎表明它已经成功绑定了636.但是,如果我们使用wireshark监视stream量,则所有stream量都将被发送到389,而不会尝试连接636。
其他工具只能在636上绑定SSL或者在389上没有SSL绑定,似乎表明它的行为正确,但Wireshark显示为389。
只有我们使用RawCap的testing服务器来捕获本地环回stream量。
有任何想法吗?
0x0 = ldap_unbind(ld); ld = ldap_sslinit("WIN-GF49504Q77T.test.com", 636, 1); Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3); Error 0 = ldap_connect(hLdap, NULL); Error 0 = ldap_get_option(hLdap,LDAP_OPT_SSL,(void*)&lv); Host supports SSL, SSL cipher strength = 128 bits Established connection to WIN-GF49504Q77T.test.com. Retrieving base DSA information... Getting 1 entries: Dn: (RootDSE)
我将首先validation证书如下。
如何解决LDAP over SSL连接问题
http://support.microsoft.com/kb/938703
步骤1:validation服务器身份validation证书
确保您使用的服务器身份validation证书符合以下要求:
域控制器的Active Directory完全限定域名出现在以下位置之一:
DNS条目中的主题备用名称(SAN)扩展名
certutil -v -urlfetch -verify serverssl.cer> output.txt
打开Output.txt文件,然后search错误。
步骤2:validation客户端身份validation证书
在某些情况下,如果LDAPS在客户端计算机上可用,则使用客户端身份validation证书。 如果有这样的证书可用,请确保证书满足以下要求:
证书链在域控制器上有效。 要确定证书是否有效,请按照下列步骤操作:
在命令提示符处,键入以下命令将命令输出发送到名为Outputclient.txt的文件:
certutil -v -urlfetch -verify serverssl.cer> outputclient.txt
打开Outputclient.txt文件,然后search错误。
步骤3:检查多个SSL证书
确定多个SSL证书是否符合步骤1中描述的要求。Schannel(Microsoft SSL提供程序)selectSchannel在本地计算机存储区中find的第一个有效证书。 如果本地计算机存储中有多个有效证书可用,Schannel可能不会select正确的证书。 如果CA安装在尝试通过LDAPS访问的域控制器上,则可能与证书颁发机构(CA)证书发生冲突。
步骤4:validation服务器上的LDAPS连接
使用域控制器上的Ldp.exe工具尝试使用端口636连接到服务器。如果无法使用端口636连接到服务器,请参阅Ldp.exe生成的错误。 另外,查看事件查看器日志以查找错误。 有关如何使用Ldp.exe连接到端口636的详细信息请单击下面的文章编号,以查看Microsoft知识库中相应的文章:
321051如何使用第三方证书颁发机构启用LDAP over SSL
http://support.microsoft.com/kb/321051
第5步:启用Schannel日志logging
在服务器和客户端计算机上启用Schannel事件日志logging。 有关如何启用Schannel事件日志logging的更多信息,请单击下面的文章编号,以查看Microsoft知识库中相应的文章:
260729如何在IIS中启用Schannel事件日志logging
http://support.microsoft.com/kb/260729