SSL 용 클라이언트 인증서를 요청하도록 구성된 웹 서버가 있습니다. 클라이언트에 허용되는 인증서가 있으면 실제 콘텐츠가 표시되지만 그렇지 않은 경우 클라이언트 인증없이 SSL로 돌아가서 보안 토큰에 연결하고 다시 시도하라는 오류 페이지가 표시됩니다.웹 브라우저에서 SSL 재 핸드 쉐이크를 트리거하는 방법은 무엇입니까?
문제는 토큰을 연결할 때도 브라우저가 현재 세션이 정상적으로 작동한다고 생각하기 때문에 새 SSL 세션을 다시 협상하지 않는다는 것입니다. 그래서 현재의 SSL 세션을 무효화 할 방법이 필요합니다.
나는 톰캣 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 또는 크롬을 위해 그것을 할 수 없다.
그래서 여기서 뭘 할 수 있습니까? 이 솔루션을 고칠 수 있습니까? 아니면 다른 솔루션이 있습니까?
에서만 사용할 수 있습니다 그리고 그것은 아닌 4 월 커넥터와 함께 작동합니다. – csviri
이 게시물 읽기 : http://security.stackexchange.com/questions/36853/is-it-possible-to-force-a-new-ssl-session# – eluish192
@ eluish192 요점은 무엇인지 잘 모르겠습니다. 이 게시물은 Apache Tomcat이 아니라 Apache Httpd에 대해 이야기합니다. – Bruno