我更新的内部应用到了两步认证处理。我想在传统的用户名/密码表单上添加客户端证书身份验证过程(通过智能卡)。该应用程序使用C#编写,托管在IIS7上,并针对Chrome和IE8。
问题:
我有让应用程序提示输入客户端证书的用户的问题。我一直在Fiddler的帮助下调试应用程序。当我有一个保存在Fiddler用户目录(C:\ Documents and Settings \ USER \ My Documents \ Fiddler2)中的测试客户端证书时,应用程序按预期工作。系统会提示输入保护智能卡的PIN号码,并且输入正确后,会将我带到登录表单。当我关闭Fiddler时,应用程序会抛出403 Forbidden错误(因为Fiddler不再运行并指向其证书)。我无法弄清的是为什么应用程序不会正常提示输入证书。
当前服务器设置:
- 自签名证书创建
- 443绑定在自签名证书指向
- 匿名认证功能
- 签名证书的自加入两受信任的根CA和中级CA(我读了另一个人在两个版本中都拥有它,而不仅仅是受信任的根CA,并且解决了他们的问题,但这两个设置都不适用于我们)。
- 我清除了我不需要的受信任根CA中的其余证书(我在其他地方读过,有太多证书会导致SSL窒息)。
我没有想法尝试,而不是从头开始在另一台服务器上。有谁知道这个问题可能是什么?这看起来应该是相当直接的,我错过了一些小事。任何想法都欢迎。
更新:
今天花更多的时间与这个问题后,我强烈相信这与IIS7没有被正确配置的话(我没有设置它最初)。我认为这是因为我启用了失败的请求跟踪,查看了正在生成的后续.xml文件,并看到引发了500错误。
Chrome正在抛出“拒绝访问网页”消息,而不是“403 - 禁止访问:访问被拒绝”。我不知道这是否有帮助。我知道,当我不需要证书时,网站将按预期工作。要求证书是失败的地方。
应用程序池设置为.Net 4.0 |经典|网络服务。
不知道我可以帮忙,但有几个问题:1)你是否尝试过IE或FF? 2)可能想在另一台服务器上复制结果。我已经看到了很多帮助/解决这个问题的问题 - 它也让您有机会了解IIS7网站的设置; 3)是否有更多的客户端和/或服务器日志可以尝试获得更多的见解 - 看起来可能更多在IIS7方面。 – Lizz 2013-03-01 21:47:36