我有一个使用ssl证书认证的网站。如何从服务器强制web浏览器再次询问要使用的证书?它可以用于注销,但这里的用例是切换用户身份。
我记得将用户定向到一个页面,该页面的ssl设置与当前的身份验证证书不兼容,但找不到正确的设置。
我的设置使用apache mod-ssl,但也欢迎IIS解决方案。
更新:我特别询问服务器端:如何在需要客户端证书但拒绝所有证书的同一主机名上设置URL。
对于火狐来说,javascript:window.crypto.logout();确实会给用户带来很小的不便(我相信这是可以通过脚本实现的)。
发布于 2012-05-08 02:53:55
一般来说,这是相当困难的(当然,这也是为什么客户端证书的使用对大多数用户来说都很乏味的原因之一)。
在客户端,有一些JavaScript技术,但它们不是全面支持的(请参阅this question)。
使用Apache Tomcat7,您可以使用请求属性使SSL/TLS会话无效,如this question中所述。
我不知道有什么钩子可以让你用Apache Httpd (和mod_ssl)做到这一点。Apache Httpd背后可用的机制(例如mod_php、CGI、FCGI等)通常不能更改mod_ssl设置的任何设置或环境变量,而这些设置或环境变量是使会话无效所必需的。
在IIS上,this question仍未得到响应。
从浏览器的角度来看,通常的方法是进入其设置并清除SSL状态(这取决于浏览器,但通常至少需要几个对话框,而不仅仅是一个快速按钮,至少在没有插件的情况下是如此)。
发布于 2014-06-04 22:45:07
在客户端浏览器中,你可以通过Tools>Internet Options>Content(标签)> Clear SSL State来清除SSL状态。
在firefox (20之前的版本)中,您可以执行以下操作:工具|开始私人浏览。
然后访问有问题的页面。或者做“工具|停止私人浏览”然后..。
然后,当您重新加载您所在的页面时,它将提示您提供一个新的客户端证书(如果您有来自服务器信任的CA的多个证书)。否则,如果您只有一个证书,它将使用存储中的一个且仅有一个PKI客户端证书。
发布于 2015-10-08 01:23:37
要注销,请阅读此帖子:https://security.stackexchange.com/questions/36853/is-it-possible-to-force-a-new-ssl-session#
在客户端,
会话通常保存在内存中。例如,Internet Explorer在内部由几个相互通信的进程组成,您必须将它们全部杀死,才能使其忘记SSL会话(实际上,只有当您关闭所有IE窗口时才会发生这种情况)。
另一种选择是使用javascript关闭浏览器。
https://stackoverflow.com/questions/10487205
复制相似问题