У меня есть 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()
.Но это не обновит текущее соединение (я).Это заставит только новые соединения снова делать рукопожатие.