Я использую Spring BOOT 2.0.4.RELEASE И Spring RestTemplate по умолчанию для отправки запроса POST во внешний API. Я также пробовал Apache CloseableHttpClient. Оба работают нормально на моем локальном компьютере, но не работают на сервере с ошибкой: «Сервер выбрал TLSv1, но эта версия протокола не включена или не поддерживается клиентом».
В java .security на сервере У меня:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, \
EC keySize < 224, 3DES_EDE_CBC, anon, NULL
Я почти уверен, что проблема с сервером. У меня установлена CentOS с java 1.8.0.242. Я пробовал все, включая включение TLSv1.2 как в файле свойств, так и в свойствах системы, а также с помощью Spring Boot.
jdk.tls.client.protocols=TLSv1.2
https.protocols=TLSv1.2
@Component
public class CustomContainer implements
WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addConnectorCustomizers(new TomcatConnectorCustomizer()
{
@Override
public void customize(Connector connector)
{
connector.setAttribute("sslProtocols", "TLSv1.1,TLSv1.2");
connector.setAttribute("sslEnabledProtocols", "TLSv1.1,TLSv1.2");
}
});
}
}
Ничего не получилось