我的网络用户可以选择使用智能卡证书通过 Firefox 向运行 Apache httpd 2.4 的网络服务器证明自己的身份。
为此我使用SSLVerifyClient optional
加号来提高速度SSLSessionCache
,SSLSessionCacheTimeout
有时用户会忘记插入智能卡。然后他成功创建了 TLS 连接并查看了一些内容,但尚未登录。如果他现在输入智能卡并重新加载页面,浏览器就不会尝试从智能卡发送证书。(我认为因为存在有效的 SSL 会话,所以不需要它,因此不会启动重新协商。)如果用户等到 SSLSessionCacheTimeout 时间到期,浏览器就会发送证书……
那么问题是:如何强制浏览器/服务器重新协商 SSL 会话?有什么诀窍吗?
第二个服务器的一个技巧是:如果我在服务器上放置一个链接“单击此处进行新的登录尝试”,该链接会将用户转移到需要证书的其他服务器(没有 SSLSessionCache),并且该服务器设置 cookie 并重定向回我的原始服务器,我能够使用该 cookie 来查看这是已登录的用户。但我希望有更好的方法...
有任何想法吗?