强制 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.
我使用 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.