我已经长时间在此工作,终于找到了!
向 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL 添加一个新的键
键名称: ClientAuthTrustMode
键类型: REG_DWORD
键值数据: 2
刷新网页,选择证书,观看神奇的事情发生。
研究
使用 Windows 8 和 IIS 8.5 ,我按照这里的说明进行操作:http://itq.nl/testing-with-client-certificate-authentication-in-a-development-environment-on-iis-8-5/.
证书已创建在正确的位置,并且在 IIS 中所有配置都正确,但我一直遇到 403.16 错误。
在尝试了多个 MSDN 文章和其他方法失败后,我找到了以下注册表设置。
设置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
键名称: ClientAuthTrustMode
键类型: REG_DWORD
键值数据: 2
设置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
键名称: SendTrustedIssuerList
键类型: REG_DWORD
键值数据: 0 (False,或者完全删除此键)
这里有关于此特定设置的更多信息(在此找到:http://technet.microsoft.com/en-us/library/hh831771.aspx)
信任模式的默认值
Schannel 提供程序支持三种客户端认证信任模式。信任模式控制如何执行对客户端证书链的验证,是由 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel 下的 REG_DWORD “ClientAuthTrustMode” 控制的系统范围设置。
0 机器信任(默认)
需要客户端证书由 Trusted Issuers 列表中的证书颁发。
1 独占根信任要求客户端证书链到调用方指定的可信发行者存储中包含的根证书。该证书还必须由受信任发行者列表中的发行者颁发。
2 专属CA信任
要求客户端证书链到调用方指定的可信发行者存储中的中间CA证书或根证书。
有关因受信任发行者配置问题导致的身份验证失败的信息,请参见知识库文章280256。
希望这对您也有帮助。