gpt4 book ai didi

internet-explorer - 如何在网络浏览器上触发 SSL 重新握手?

转载 作者:行者123 更新时间:2023-11-28 21:52:22 25 4
gpt4 key购买 nike

我有一个配置为请求 SSL 客户端证书的 Web 服务器。如果客户端有一个可接受的证书,他们将看到实际内容,但如果没有,我会在没有客户端身份验证的情况下回退到 SSL,并显示一个错误页面,通知他们连接他们的安全 token 并重试。

问题是,即使他们连接了 token ,浏览器也不会重新协商新的 SSL session ,因为它认为当前 session 正常。所以我需要一种方法来使当前的 SSL session 无效。

我尝试在服务器上执行此操作,它是 Tomcat 6:

response.setHeader("Connection", "close");          // open new socket next time
response.flushBuffer();

Object sslSessionMgr = request.getAttribute("javax.servlet.request.ssl_session_mgr");
if (sslSessionMgr != null) {
try {
Method invalidateSession =
Class.forName("org.apache.tomcat.util.net.SSLSessionManager").getMethod("invalidateSession");
invalidateSession.setAccessible(true);
invalidateSession.invoke(sslSessionMgr);
} catch (Exception e) {/*ignore*/}
}

但事实证明 sslSessionMgr 始终为 null,我想知道我在这里做错了什么。

客户端当然没有通用的解决方案,但幸运的是 window.crypto.logout() 为 FireFox 解决了这个问题。我在某处读到 IE 的等价物是 document.execCommand("ClearAuthenticationCache") 或一些 ActiveX 控件?无论如何,我似乎无法为 IE 或 Chrome 做到这一点。

那我能在这里做什么呢?我可以修复这些解决方案中的任何一个,还是有任何其他解决方案?

最佳答案

不幸的是,正如 this issue 中所讨论的,这在 Chrome 中尚不支持。 .

据我所知,javax.servlet.request.ssl_session_mgr 技巧仅适用于 Apache Tomcat 7。

关于internet-explorer - 如何在网络浏览器上触发 SSL 重新握手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10229027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com