HTTPS客户端证书注销/重新登录(https client certificate logout/

2019-07-29 07:21发布

我已经使用SSL证书认证的网站。 如何强制从服务器再问证书的Web浏览器中使用? 这将是可用的注销,但这里的使用情况下切换用户身份。

我还记得一些关于将用户引导到具有SSL设置与当前的认证证书不兼容的页面时,却找不到正确的设置。

我的设置使用Apache MOD-SSL,但一个IIS的解决方案也将受到欢迎。

更新:我特别要求服务器端:如何设置上需要客户端证书,但拒绝所有证书相同的主机名的URL。

对于Firefox, javascript:window.crypto.logout(); 并有轻微的用户不便(我认为可围绕脚本)工作。

Answer 1:

这是相当困难的,一般(和的原因,客户端证书的使用可以为大多数用户繁琐的当然是一个)。

从客户端,也有一些JavaScript技术,但它们都不能一刀切支持(见这个问题 )。

使用Apache Tomcat 7,你可以在描述使用无效的请求属性的SSL / TLS会话, 这一问题 。

我不知道,它可以让你使用Apache的httpd(和做任何钩子mod_ssl )。 背后apache httpd的可用的机制(如mod_php ,CGI,FCGI,...)通常没有得到能够改变由设置任何设置或环境变量mod_ssl ,这将是必要的无效会话。

在IIS上, 这个问题仍未得到解决。

比较通用的做法,从浏览器的一点,就是要进入它的设置和清除SSL状态(这取决于浏览器,但通常需要几个对话框至少,不只是一个快捷按钮,至少不无插件)。



Answer 2:

通过转至工具> Internet选项>内容(标签)>清除SSL状态您清除SSL状态:从客户端的网页浏览器,你可以为MSIE(Internet Explorer)中做到这一点。

在Firefox(之前的20版),你可以这样做:工具| 进入隐私浏览模式。

然后访问该页面的问题。 或然后执行“工具|停止私人浏览”,然后...

然后,当你重新加载你在这一个页面会提示你提出一个新的客户端证书(如果你有一个以上的来自CA,你的服务器信任)。 Othererwise如果你只是有一个证书,它将使用一个且只有一个PKI客户端证书是在您的商店。



Answer 3:

对于注销阅读这篇文章: https://security.stackexchange.com/questions/36853/is-it-possible-to-force-a-new-ssl-session#

在客户端,SSL会话通常保存在RAM中。 IE浏览器,例如,内部由若干个过程,互相交谈,而你必须杀死他们,使其忘记SSL会话(实际上,这只是发生在你已经关闭了所有的IE窗口)。

另一种可能是用JavaScript关闭浏览器。



文章来源: https client certificate logout/relogin