强制 wsimport (Java 10/11) 容忍 TLSv1 和弱密码

force wsimport (Java 10/11) to tolerate TLSv1 and weak cipher

我使用 wsimport 从特定的 WSDL 生成代码。我试了Java 10,握手失败,然后我试了Java 9,没问题。

我观察了使用 wireshark 的通信,原因很清楚,我通信的服务器仍然使用 TLSv1,我猜 Java 10 wsimport 不再容忍那个(不是由至少默认),尽管 9 确实如此。

我对服务器无能为力,所以问题变成了我如何 运行 Java 10 wsimport with TLSv1 tolerance?

进行了更多调查,最有用的测试是使用 ssl labs 完成的。原来服务器支持弱密码套件:TLS_RSA_WITH_3DES_EDE_CBC_SHA.

问题已通过添加以下 java 选项解决:

-Dhttps.cipherSuites=SSL_RSA_WITH_3DES_EDE_CBC_SHA

无法将密码套件指定为 TLS_RSA_WITH_3DES_EDE_CBC_SHA。 Java 的命名约定要求它被称为 SSL_RSA_WITH_3DES_EDE_CBC_SHA.

旁注:@nullpointer 上面的评论中提到的错误在我尝试的所有三个版本中都已解决:Java 9/10/11.