我正在设置服务器,以便只有映射的证书才能到达Web服务。它被设置为要求SSL /客户端证书,匿名身份验证,asp.net模拟,表单身份验证和Windows身份验证都被禁用。启用一对一客户端证书映射,并使用适当的用户映射在框上设置证书。当我尝试使用Web服务时,我得到401.2。如果我启用匿名身份验证,它可以工作,但我不希望任何旧证书能够访问该网站。
我有另一台在此配置中禁用匿名身份验证的计算机,它可以正常运行。我不确定区别是什么。
答案 0 :(得分:6)
我遇到了同样的问题,但上面的解决方案并没有解决我的问题。我在网站的子目录上配置IIS证书身份验证,而不是在网站本身。
所以,这是错误的:
这是正确的:
一旦我将配置移动到网站的根目录,一切都运行良好。
答案 1 :(得分:1)
您是否从客户端/服务器信任的证书服务器颁发了客户端证书?如果您查看证书上的“增强型密钥用法”属性,“客户端身份验证”是其中一个属性吗?在IIS中,是否安装了客户端证书映射角色(参见图1)?你启用了“Client Certificate Mapping”并将用户映射到证书?您需要导入所有客户端证书并将其映射到此处的用户帐户。您可以在此处配置后删除所有其他客户端身份验证方法。
答案 2 :(得分:1)
问题最终成为正在调用的软件,而不是配置中的软件。我正在给予natemrice赏金,因为他付出了很大的努力来回答最后的问题。
编辑:有关更多信息,它实际上最终是发送的证书(来自本地方框)与放在oneToOne映射中的证书之间不匹配。通用名称相同,但证书不同(可能是第一个已过期),因此证书未经授权。