排查 LDAP over SSL 连接问题
本文讨论如何排查 LDAP over SSL (LDAPS) 连接问题的步骤。
适用于: Windows Server 2003
原始 KB 编号: 938703
步骤 1:验证服务器身份验证证书
确保所使用的服务器身份验证证书满足以下要求:
域控制器的 Active Directory 完全限定域名显示在以下位置之一:
- “ 主题 ”字段中 (CN) 的公用名。
- DNS 条目中的使用者可选名称 (SAN) 扩展。
增强的密钥用法扩展包括服务器身份验证对象标识符 (1.3.6.1.5.5.7.3.1) 。
关联的私钥在域控制器上可用。 若要验证密钥是否可用,请使用
certutil -verifykeys
命令。证书链在客户端计算机上有效。 若要确定证书是否有效,请执行以下步骤:
在域控制器上,使用“证书”管理单元将 SSL 证书导出到名为 Serverssl.cer 的文件。
将Serverssl.cer文件复制到客户端计算机。
在客户端计算机上,打开命令提示符窗口。
在命令提示符下,键入以下命令,将命令输出发送到 名为Output.txt的文件:
certutil -v -urlfetch -verify serverssl.cer > output.txt
注意
若要执行此步骤,必须安装 Certutil 命令行工具。
打开 Output.txt 文件,然后搜索错误。
步骤 2:验证客户端身份验证证书
在某些情况下,LDAPS 使用客户端身份验证证书(如果客户端计算机上可用)。 如果此类证书可用,请确保证书满足以下要求:
增强的密钥用法扩展包括客户端身份验证对象标识符 (1.3.6.1.5.5.7.3.2) 。
关联的私钥在客户端计算机上可用。 若要验证密钥是否可用,请使用
certutil -verifykeys
命令。证书链在域控制器上有效。 若要确定证书是否有效,请执行以下步骤:
在客户端计算机上,使用“证书”管理单元将 SSL 证书导出到名为 Clientssl.cer 的文件。
将Clientssl.cer文件复制到服务器。
在服务器上,打开命令提示符窗口。
在命令提示符下,键入以下命令,将命令输出发送到 名为Outputclient.txt的文件:
certutil -v -urlfetch -verify serverssl.cer > outputclient.txt
打开 Outputclient.txt 文件,然后搜索错误。
步骤 3:检查多个 SSL 证书
确定多个 SSL 证书是否满足 步骤 1 中所述的要求。 Schannel (Microsoft SSL 提供程序) 选择 Schannel 在本地计算机存储中找到的第一个有效证书。 如果本地计算机存储中提供了多个有效证书,则 Schannel 可能无法选择正确的证书。 如果 CA 安装在尝试通过 LDAPS 访问的域控制器上,则可能会与证书颁发机构 (CA) 证书发生冲突。
步骤 4:验证服务器上的 LDAPS 连接
使用域控制器上的 Ldp.exe 工具尝试使用端口 636 连接到服务器。 如果无法使用端口 636 连接到服务器,请参阅 Ldp.exe 生成的错误。 此外,查看事件查看器日志以查找错误。 有关如何使用 Ldp.exe 连接到端口 636 的详细信息,请参阅 如何通过 SSL 向第三方证书颁发机构启用 LDAP。
步骤 5:启用 Schannel 日志记录
在服务器和客户端计算机上启用 Schannel 事件日志记录。 有关如何启用 Schannel 事件日志记录的详细信息,请参阅 如何在 Windows 和 Windows Server 中启用 Schannel 事件日志记录。
注意
如果必须在运行 Microsoft Windows NT 4.0 的计算机上执行 SSL 调试,则必须对已安装的 Windows NT 4.0 Service Pack 使用 Schannel.dll 文件,然后将调试器连接到计算机。 Schannel 日志记录仅将输出发送到 Windows NT 4.0 中的调试器。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈