Заставить клиент или сервер перезапустить рукопожатие SSL (или истечь сеанс SSL)

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


person hadi.mansouri    schedule 04.03.2019    source источник


Ответы (1)


Для будущих читателей.

Аналогичный вопрос задаю на security.stackexchange.com без подробностей о программировании. Я думал, что вопрос может быть проблемой безопасности. Однако этот вопрос теперь перенесен с security.stackexchange.com на stackoverflow.com и имеет для меня убедительный ответ. Я предлагаю обратиться к этому: https://stackoverflow.com/a/55004572/5538979

person hadi.mansouri    schedule 05.03.2019