我正在使用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
我很确定这是服务器问题。我在那里安装了Java 1.8.0.242的CentOS。我已经尝试了所有方法,包括在属性文件,系统属性以及使用Spring Boot启用TLSv1.2。
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");
}
});
}
}
什么都没做