我一直在开发 Java 网络服务客户端。它对每个人都适用,除了一个出现此错误的客户:
class java.lang.IllegalArgumentException :
SSLv2Hello cannot be enabled unless at least one other supported version is also enabled
我无法重现错误。我们正在使用同一台服务器尝试对其进行测试,它对我和我所有的同事都很好。唯一不同的是我们使用的是我们的证书,而用户使用的是他的。 尝试过 System.setProperty("https.protocols", "SSLv3"); 然后我得到了这个:
class javax.xml.ws.WebServiceException :
Failed to access the WSDL at: https:something:someport/something/something?wsdl. It failed with:
No appropriate protocol (protocol is disabled or cipher suites are inappropriate).
客户端正在使用:
虚拟机:1.8.0_40
操作系统:Windows 7
我不知道如何解决这个问题,或者采取什么途径来进一步探索这个问题。
最佳答案
SSLv2Hello 不能单独出现,它需要允许另一个协议(protocol)(SSLv3,TLS,..)
您的代码似乎可以正常工作,因为您几乎可以在任何地方对其进行测试并获得良好的结果。然后,根据配置或 JDK 版本,这是故障测试仪上的环境问题。
检查环境变量、java.security 文件(特别是 jdk.tls.disabledAlgorithms key ,测试时可以为空)和 deployment.properties 文件(如果有)。 在客户端或服务器启动期间转储所有环境属性通常是个好主意。
关于java - 无法启用 SSLv2Hello,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48802800/