我们正在开发一个托管在IIS中的ASP.NET WebAPI,它使用iisClientCertificateMappingAuthentication的客户端证书进行身份验证。在我们的内部开发环境中,我们已经测试了IIS 7-8和Windows 7-8/Server 2012,它们都工作得很好。
我们已经在Azure中使用运行Windows Server2012HTTP和IIS8的VM设置了一个演示环境。使用此配置,我们尚未成功通过R2客户端证书验证,其中我们始终收到HTTP 403.16错误。
该服务由自定义iOS应用程序使用,我们已验证该应用程序正在发送客户端证书,这是意料之中的,因为我对错误的理解意味着IIS无法验证它接收到的证书。
客户端证书颁发机构安装在本地计算机的受信任根证书颁发机构和客户端身份验证颁发者存储中。
几乎所有我们能找到的关于这个问题的资源都在这里提出了解决方案:http://social.technet.microsoft.com/Forums/en-US/fae724e8-628e-45a5-bf39-6e812d8a1a70/40316-problem-in-iss8-on-mp-in-dmz?forum=configmanagerdeployment,建议我们为ClientAuthTrustMode添加一个注册表设置。这并没有为我们解决这个问题;我们也不需要在涉及完全相同的操作系统和IIS版本的任何本地测试中这样做。
我们已经在这个问题上花了几天的时间,但没有取得任何进展,希望有人能对这个问题有一些见解。是否有任何默认配置,我们尚未遇到为Azure中的VM启用此形式的身份验证?似乎Azure中VM上的IIS实际上无法针对受信任根中的CA进行验证。我的一个想法是,也许证书在路由到IIS之前已从请求中剥离,但根据我对错误代码的理解,这似乎不太可能。
有没有人得到这样的设置来工作?
发布于 2014-09-22 20:22:50
我偶然看到了这篇知识库文章,也许它可以帮助你http://support.microsoft.com/kb/2802568
https://stackoverflow.com/questions/23143096
复制相似问题