2009-10-10 178 views
2

我如何检查我的ASP.net代码中的客户端浏览器SSL证书 我想确保如果任何https代理像fiddler正在运行,那么我的应用程序不会加载 我做了以下至今没有任何成功: 我的网站是在HTTPS 在IIS我已经设置 要求SSL =真 要求128位加密=真 接受证书=真我如何检查客户端浏览器SSL证书

在我的Default.aspx的Page_Load

我正在尝试读取Request.ClientCertificate的值时,集合即将变为空。

+1

只需要清楚“ClientCertificate”返回任何客户端提供的证书,例如来自最终用户的智能卡。它不会返回客户端对服务器SSL证书的看法。 – EricLaw 2009-10-10 22:11:39

回答

0

您是否期望客户端安装证书?大多数用户没有安装客户端证书。

尽管如此,我不知道一个客户端证书究竟如何去保护你,你所描述的情况......

+0

感谢您的回复 Iam不期望客户端安装证书 我打算使用证书的CA验证在浏览器中加载的SSL – John 2009-10-10 14:56:34

1

没有办法做你想要做的,除非你运行一个什么客户端上的ActiveX控件。

Internet Explorer和其他浏览器不会将服务器的SSL证书信息公开给页面中的JavaScript,这意味着您无法在您的客户端上运行的页面知道它是否随您的证书一起提供,或者另一个证书。

话虽如此,即使提供了这种方法,它可能无法帮助你。据推测,您希望这样做是为了防止查看/修改您的流量,但还有其他工具可以直接插入浏览器(发布HTTPS解密,预HTTPS加密),可以查看/修改流量,而无需将其重新分配为Fiddler其他代理做。

此外,在边缘代理(例如BlueCoat,Forefront)使用Fiddler使用的相同机制进行内容检查的企业环境中,您的代码会失败。

相关问题