我有一个奇怪的情况。我的 Win 2016 服务器被 AD 组策略破坏了。
在 X 时刻自动 AD 组策略更新后,IIS 10 开始抛出 403 错误。事先远程方通过带有客户端证书的 https 毫无问题地呼叫我们。
我在 X 时刻之前和 X 时刻之后都有备份,但我无法确定 AD GP 更改的设置。
我有一份设置文件,其中包含从头开始设置我们的 Web 服务所需的所有设置。我已经根据受害者服务器检查了它们。没有改变。在每个级别启用匿名身份验证并启用 SSL 设置-> 客户端证书-> 接受。
我们的管理员发誓他们没有改变任何东西。IIS 日志在 X 时刻之后什么也没有显示。
任何想法在哪里看?注册表?元数据库?
根据 SOAP e2e 跟踪日志返回给调用者的确切错误:
The HTTP request was forbidden with client authentication scheme 'Anonymous'.[The remote server returned an error: (403) Forbidden.]
组策略和 IIS 服务器的一个常见问题是当 GPO 覆盖本地安全策略分配的用户权限并且 IIS 服务帐户无法登录时。如果发生这种情况,Windows 安全日志应该包含 IIS 服务器服务帐户的 EventId 4625 登录失败事件。
您可以通过从 IIS 服务器运行 RSOP.MSC 并导航到计算机配置 > 策略 > Windows 设置 > 安全设置 > 本地策略 > 用户权限分配来快速验证任何 GPO 干扰
查看源 GPO 列以确定哪个 GPO 正在应用设置。使用 gpedit.msc 查看/编辑本地组策略应用的设置。
您可以使用本文来验证您的 IIS 服务器权限。从页面底部的“本地安全策略分配的 Windows 用户权限”表开始。
请记住:只要 GPO 以受控方式进行测试和应用,它们就不是敌人。
简短的回答
检查流氓证书。就我而言,受信任的根证书颁发机构证书存储中有一个非自签名证书。我们的管理员已将这个政府颁发的证书添加到整个森林(通过组策略),而没有事先进行适当的测试。
细节
我在这里放了一些一般性的故障排除指南,以帮助人们在 3 周内解决此类问题,就像我的情况一样。
AD 组政策
如果您不熟悉组策略,请使用以下命令获取人类可读的报告(最好由 IE 查看):
要查看更多详细信息,请
RSOP.MSC
按照@twconnell推荐使用。RSOP.MSC 显示应用的本地和组策略的有效快照。验证安全性Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment
。就我而言,我已经彻底阅读了这个优秀的SO 答案,并关注了那里的每个链接。然后我检查了每个文件、文件夹和应用程序池的访问权限。那里没有任何问题。IIS 日志
查看 IIS 日志。应该有更多的细节,而不仅仅是
403
提供给客户的代码。就我而言,那里有403 16
代码。查看此故障排除指南。就我而言,它很短:
Client certificate is untrusted or invalid
证书吊销列表 (CRL)
我的证书 CA 是 AD 提供的公司 CA,所以我最初认为证书吊销列表 (CRL) 可能存在问题。最好的实用指南就是这个。要了解更多细节,请阅读此,此,最后是此怪物。就我而言,CRL 没有问题,因为我事先遵循了 this、this和this指南。结果:
SSL 调试
从客户端调试 SSL 使用
openssl
工具(假设 myserver 使用通用 443 端口进行 https):在我的情况下
acceptable CAs for client certificates
,最初是空的,所以我将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\SendTrustedIssuerList
DWORD 值设置为 1 并按照本指南(接近底部)重新启动服务器。请注意,客户端证书 IIS 问题的可接受 CA 的空列表也可能发生,因为根据这个 SF question的 CA 列表很大。acceptable CAs for client certificates
当您在输出中有一个列表时,openssl
您可以将其与服务器上配置的证书存储的内容进行比较。就我而言,那里只有一个证书属于Trusted Root Certification Authorities
. 因此,经过几天的调查,我看到了这篇ms-support 文章 #2802568。实际上,一个放置不当的非自签名证书注定了整个身份验证链。结语
引用@tylerl