ResourceAccessException服务器选择了TLSv1,但是客户端未启用或不支持该协议版本

时间:2020-05-25 10:13:19

标签: java spring spring-boot

我正在使用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");
            }
        });
    }
}

什么都没做

0 个答案:

没有答案