我有一个Java客户端,该客户端连接到HTTPS服务器(也是用Java编写的服务器)。这是客户端中的HttpClient设置:
SSLContext ctx = SSLContext.getInstance("TLSv1.2");
keyManagers = ...; // Created from a PKIX KeyManagerFactory
trustManagers = ...; // Created from a PKIX TrustManagerFactory
ctx.init(keyManagers, trustManagers, new SecureRandom());
SSLContext.setDefault(ctx);
RequestConfig defaultRequestConfig = RequestConfig.custom()//
.setSocketTimeout(5000)//
.setConnectTimeout(5000)//
.setConnectionRequestTimeout(5000)//
.build();
httpClient = HttpClients.custom()//
.setSSLContext(ctx)//
.setDefaultRequestConfig(defaultRequestConfig)//
.setSSLHostnameVerifier(new NoopHostnameVerifier())//
.build();
客户端证书和受信任证书存储在PKI令牌中。 客户端不断向服务器发送一些HTTP请求。一切正常。现在,我想强制客户端(或服务器)重新开始握手。换句话说,我想刷新SSL连接,这会导致定期检查服务器证书。有什么办法吗?
我了解SSLSessionContext.setSessionTimeout()
。但这不会刷新当前连接。它将仅强制新的连接再次进行握手。
答案 0 :(得分:0)
供将来的读者使用。
我在security.stackexchange.com
上问了类似的问题,但没有关于编程的详细信息。我以为这个问题可能是安全问题。但是,现在该问题已从security.stackexchange.com迁移到stackoverflow.com
,并为我提供了令人信服的答案。我建议参考:https://stackoverflow.com/a/55004572/5538979