java - 无法启用 SSLv2Hello

标签 java web-services ssl

我一直在开发 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/

相关文章:

java - 如何命名一个将单个对象作为输入而另一个将多个对象作为输入的方法?

java - 如何通过 Java 包装器执行 IBM Watson Retrieve And Rank API 中的 searchAndRank 方法

java - tomcat向Web服务器的所有实例发送相同的请求

ssl - Heroku 更新 SSL 证书

ssl - 让我们加密 ssl 证书在 TLS 握手中发送两次

java - 将静态方法传递给按钮工厂 (Java)

java - Jersey NoClassDefFoundError : org/objectweb/asm/ClassVisitor exception

c# - 清洁代码 : SRP and Open/Closed when fetching data from web services

.net - 基于条件的自定义 wsdl?

ssl - 使用自签名 SSL 证书有效,但 CA 签名证书导致握手警报失败 40 以响应客户端问候