gpt4 book ai didi

iis - HTTP 错误 403.16 - 客户端证书信任问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:45 28 4
gpt4 key购买 nike

我正在尝试在 IIS 8 上实现客户端证书身份验证。我已经在开发机器上部署了我的配置,并验证了它在那里按预期工作。但是在服务器上设置之后,每当我导航到该站点并提示输入客户端证书时,我选择它并立即收到 403.16 错误。失败的请求日志给出了错误代码 2148204809 和消息​​“证书链已处理,但在不受信任提供者信任的根证书中终止。”

我有一个有效的客户端证书和一个有效的 CA 证书。 CA 证书安装在服务器和客户端计算机帐户的受信任的根权限中,客户端证书安装在客户端计算机上当前用户帐户的个人区域。

客户端证书由根 CA 直接签署,正如我所说,两者都是有效的。链中没有其他证书,并且受信任的根颁发机构区域中没有中间证书。

IIS 配置有 sslFlags = SslNegotiateCert 并且 iisClientCertificateMappingAuthentication 已启用。

服务器未配置为发送 CTL,我们有 SendTrustedIssuerList = 0。

我不明白为什么不应该信任客户端证书。

最佳答案

Windows 2012 引入了更严格的证书存储区验证。根据KB 2795828: Lync Server 2013 Front-End service cannot start in Windows Server 2012 ,受信任的根证书颁发机构(即根)存储只能拥有自签名的证书。如果该存储区包含非自签名证书,IIS 下的客户端证书身份验证将返回 403.16 错误代码。

要解决此问题,您必须从根存储中删除所有非自签名证书。此 PowerShell 命令将识别非自签名证书:

Get-Childitem cert:\LocalMachine\root -Recurse | 
Where-Object {$_.Issuer -ne $_.Subject}

在我的情况下,我们将这些非自签名证书移动到中间证书颁发机构(即 CA)存储中:

Get-Childitem cert:\LocalMachine\root -Recurse | 
Where-Object {$_.Issuer -ne $_.Subject} |
Move-Item -Destination Cert:\LocalMachine\CA

根据 KB 2801679: SSL/TLS communication problems after you install KB 931125 ,您可能还有太多受信任的证书。

[T]he maximum size of the trusted certificate authorities list that the Schannel security package supports is 16 kilobytes (KB). Having a large amount of Third-party Root Certication Authorities will go over the 16k limit, and you will experience TLS/SSL communication problems.

这种情况下的解决方案是删除任何您不信任的证书颁发机构证书,或者 to stop sending the list of trusted certifiation authorities by setting the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\@SendTrustedIssuerList registry entry to 0 (如果不存在,默认值为 1)。

如果在上述步骤后问题仍然存在,请重新启动机器。

关于iis - HTTP 错误 403.16 - 客户端证书信任问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247462/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com