Iis 启用证书身份验证时获取401.2

Iis 启用证书身份验证时获取401.2,iis,iis-7,certificate,Iis,Iis 7,Certificate,我正在设置一个服务器,以便只有映射的证书才能访问Web服务。它被设置为要求SSL/客户端证书、匿名身份验证、asp.net模拟、表单身份验证和windows身份验证都被禁用。启用一对一客户端证书映射,并在具有适当用户映射的框上设置证书。当我尝试使用webservice时,我得到了401.2。如果我启用匿名身份验证,它可以工作,但我不希望任何旧证书能够访问该网站 我有另一台机器在这个配置中禁用了匿名身份验证,它可以正常工作。我不确定区别是什么。您是否从客户端/服务器信任的证书服务器颁发了客户端证书

我正在设置一个服务器,以便只有映射的证书才能访问Web服务。它被设置为要求SSL/客户端证书、匿名身份验证、asp.net模拟、表单身份验证和windows身份验证都被禁用。启用一对一客户端证书映射,并在具有适当用户映射的框上设置证书。当我尝试使用webservice时,我得到了401.2。如果我启用匿名身份验证,它可以工作,但我不希望任何旧证书能够访问该网站


我有另一台机器在这个配置中禁用了匿名身份验证,它可以正常工作。我不确定区别是什么。

您是否从客户端/服务器信任的证书服务器颁发了客户端证书?如果查看证书上的“增强的密钥使用”属性,“客户端身份验证”是它的属性之一吗?在IIS中,是否安装了客户端证书映射角色(请参见图1)?是否启用“”并将用户映射到证书?您需要导入所有客户端证书并将它们映射到此处的用户帐户。在此处配置后,可以删除所有其他客户端身份验证方法


问题最终是调用的软件,而不是配置中的软件。我授予纳特米斯赏金,因为他尽力回答了最终不成问题的问题


编辑:有关更多信息,它实际上导致发送的证书(从本地框)与放入oneToOne映射中的证书不匹配。通用名称相同,但证书不同(可能是第一个过期的证书),因此证书未经授权。

我遇到了相同的问题,但上面的解决方案没有解决我的问题。我是在网站的子目录上配置IIS证书身份验证,而不是在网站本身上

因此,这是错误的:

这是正确的:

一旦我将配置移到网站的根目录下,一切都很顺利


我在。

找到了解决方案。您能否澄清这句话:“它被设置为要求SSL/客户端证书、匿名身份验证、asp.net模拟、表单身份验证和windows身份验证都被禁用。”不清楚您的配置中启用和未启用了什么。另外,您使用的IIS、Windows和浏览器的版本是什么?@natemrice-当然可以。IIS7,Server2008,我也尝试过IE和Chrome,但由于这是一个.NET2.0WebService,所以访问是专门从程序进行的。澄清一下:如果您进入IIS管理器并单击所需的网站:1)在“身份验证”下,您会找到匿名身份验证、ASP.Net模拟、表单身份验证和Windows身份验证。只启用了匿名,我想禁用它。2) 单击网站上的后退并转到SSL设置,我已选中“需要SSL”,并且客户端证书设置为“需要”证书是可信的(顺便说一句,这不可能是问题,因为网站会立即拒绝请求,说您由于服务器配置(401.2代码)而无法连接)。在system.webServer/security/authentication/iisClientCertificateMappingAuthentication中,enabled设置为true,manyToOne..enabled设置为true,oneToOne..enabled设置为true。oneToOneMappings集合中设置了证书。问题是2件事中的1件:1)您仍然打开了所有其他身份验证机制,它们都应该关闭,或者2)您的客户端映射不知怎么搞砸了。客户端证书与服务器不匹配,用户不正确,等等。这就是我想要的提示!!我刚刚在IIS7.5上试用过,证书到用户的映射只在站点的根级别起作用。但是,您可以配置它并在根目录下禁用它,然后仅在需要使用的别名上启用它,而无需重复映射。非常感谢!我被这个问题困扰了好几天!