如何在我的ASP.net代码中检查客户端浏览器SSL证书 我想确保如果任何像fiddler这样的https代理正在运行,那么我的应用程序就不会加载 到目前为止我做了以下工作但没有成功: 我的网站是在Https上 在IIS我已经设置 要求SSL = true 要求128位加密= true accept certificate = true
在我的default.aspx Page_Load中我试图读取Request.ClientCertificate的值,该集合将变为空。
答案 0 :(得分:1)
除非您在客户端上运行ActiveX控件,否则无法执行您要执行的操作。
Internet Explorer和其他浏览器不会将服务器的SSL证书信息暴露给页面中的JavaScript,这意味着在客户端上运行的页面无法知道它是否随证书或其他人一起提供证书。
话虽如此,即使提供了这样的方法,无论如何它可能都无济于事。据推测,您希望这样做是为了防止查看/修改您的流量,但还有其他工具直接插入浏览器(发布HTTPS解密,预加密HTTPS加密),可以查看/修改流量而无需将其作为Fiddler和其他代理人。
此外,您的代码在企业环境中会失败,其中边缘代理(例如BlueCoat,Forefront)使用Fiddler使用的相同机制进行内容检查。
答案 1 :(得分:0)
您是否希望客户端安装证书?大多数用户没有安装客户端证书。
尽管如此,我不确定客户证书在您描述的情况下是如何保护您的......