Клиент не может открыть соединение с сервером, потому что он, вероятно, не поддерживает те же версии или настройки TLS.
Попробуйте запустить приложение с:
-
-Dhttps.protocols=TLSv1.2
-Dhttps.protocols=TLSv1.3
-Dhttps.protocols=TLSv1.0
TLSv1.2 (2008) - это поддерживаемая в настоящее время версия TLS, которая развернута повсеместно и поддерживается где угодно. Это безопасное значение по умолчанию и то, что нужно для того, чтобы вещи просто работали.
TLSv1.3 (2018) - готовящаяся версия. Он медленно внедряется везде (веб-серверы, приложения, балансировщики нагрузки, CDN и т. Д. c ...). Переход должен быть плавным, но это не совсем так, ни одно программное обеспечение не является идеальным с первой попытки, и появляются некоторые ошибки и несовместимости. JDK 11 представляет TLSv1.3 и пытается использовать его по умолчанию, что не очень хорошо go с учетом ошибки, поэтому обходной путь должен принудительно использовать вместо него TLSv1.2.
Есть Сложные крайние случаи, если вы используете TLS для аутентификации сертификата клиента , часто используется в корпоративных системах, работающих с высокочувствительной информацией, такой как банковские API. TLS 1.3 изменил способ аутентификации клиента, поэтому программное обеспечение клиента и сервера, вероятно, необходимо обновить, чтобы оно вообще могло работать. HTTP / 2 нарушает аутентификацию клиента по замыслу, RF C ожидает согласования решения, в то же время используется HTTP / 1.1.
TLSv1.0 (1999) является устаревшей версией, которая запрещена использование и удалено в последних версиях библиотеки (OpenSSL 1.1.x, JDK 11 и др. c ...). С 2020 года можно столкнуться с этим, если вы работаете с устаревшими корпоративными java приложениями, которые не обслуживались годами. Они действительно должны быть обновлены.