镀铬的数字证书

时间:2017-11-17 15:19:31

标签: google-chrome authentication ssl certificate ssl-client-authentication

我在我的网络应用程序中有以下情况。用户使用的常用浏览器是Chrome。

我使用数字证书,用户将加密卡插入读卡器。

要登录应用程序,用户基本上可以访问使证书数据读取的https链接。

到目前为止一切正常。

如果用户结束他的应用程序会话关闭浏览器,则没有问题。一切都结束了。

但是如果用户想要离开他的应用程序会话,而不关闭所有浏览器窗口,这就是我的问题。

有一个关闭应用程序会话的按钮,用户离开并重定向到初始登录屏幕。似乎所有内容都已重置,因为用户已离开。但是当新用户想要登录并按下链接以读取证书数据时,请使用前一张卡中的数据而不是新读取新卡,而不要求引脚访问它。

问题更进一步,例如,如果用户忘记了卡,卡并尝试进行logarize,则无法读取证书。但是现在,虽然插入正确,但在重新启动浏览器之前不会再次读取卡,这会保留一个没有证书的缓存。

目前只关闭所有Chrome窗口找到解决方案,但这取决于用户是否这样做。

部分解决方案肯定会用javascript()关闭浏览器但是有一段时间,它无法用javascript(window.close())关闭,这是一个无法从网站本身打开的窗口,什么是可用的我认为它排除了

有人可以为我做贡献吗?谢谢

1 个答案:

答案 0 :(得分:0)

Chrome和其他浏览器会维护已执行的SSL身份验证的缓存,并决定何时提示用户选择证书。由于TLS恢复协议(客户端可以恢复会话),没有“注销”功能也无法从服务器端关闭连接

使用客户端证书定义身份验证系统时,这是一个常见且已知的问题。我只找到了一种解决方法:使用不同的域名强制浏览器选择证书

login.domain.com
   -->login1.domain.com
   -->login2.domain.com

   -->loginN.domain.com

您有一个虚拟身份验证URL login.domain.com,每当您需要身份验证时,它会将用户的浏览器重定向到随机loginN.domain.com。 Chrome会检测到它是一个不同的域,并会提示用户选择证书

你也可以考虑使用不同的端口而不是不同的DNS,但是你可能会遇到用户防火墙的问题,因为你没有使用标准端口,在这种情况下,Firefox也没有显示窗口。