以下代码在JDK 11中引发错误:
HttpURLConnection con = (HttpURLConnection) new URL("https://sis.redsys.es/sis/realizarPago").openConnection();
con.setRequestMethod("GET");
con.getResponseCode();
错误是:
javax.net.ssl.SSLHandshakeException: extension (10) should not be presented in server_hello
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:128)
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:268)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259)
at java.base/sun.security.ssl.SSLExtensions.<init>(SSLExtensions.java:71)
at java.base/sun.security.ssl.ServerHello$ServerHelloMessage.<init>(ServerHello.java:169)
at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.consume(ServerHello.java:860)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:390)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:445)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:178)
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:877)
at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:810)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:383)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
它可以在任何以前的JDK中使用(我已经在7、8、9和10中进行了测试)。
该证书似乎是有效的,因为它已被浏览器或我在互联网上找到的大多数SSL测试所识别。
我尝试禁用主机名验证,禁用cacerts,将DigiCert添加到cacerts文件中没有任何运气。
似乎是openJDK中的错误。在版本26、27和28(候选发布)中进行了测试。
该问题目前已在JDK 12
https://bugs.openjdk.java.net/browse/JDK-8209965中得到解决,并且已包含在ea-9中。
到JDK
11的反向端口也已解决https://bugs.openjdk.java.net/browse/JDK-8210005并包含在
在这里的评论中可以找到一些背景知识https://github.com/openssl/openssl/pull/4463/files
TLS
1.3为服务器添加了一种方案,用于在EncryptedExtensions消息中向客户端指示其受支持组的列表,但是任何相关规范均不允许在ServerHello中发送supported_groups。但是(可能是由于与ServerHello中允许的“
ec_point_formats”扩展名非常接近),无论如何,仍有几台服务器在ServerHello中发送此扩展名。直到1.1.0版(包括1.1.0版),我们都没有检查是否存在不允许的扩展,因此为了避免回归,我们还必须在TLS 1.2
ServerHello中允许此扩展。
问题内容: 尝试在全新的节点项目中安装nodemon时出现此错误。 我创建了一个名为my-project的空白文件夹,然后在其中执行了创建package.json文件的操作: 然后当尝试运行 结果是: 我刚刚将节点版本更新为最新的npm工具。 有趣的是,两天前我已经在另一台计算机上完成了相同的步骤,没有问题。 问题答案: 官方问题:https : //github.com/npm/registry
我正在通过安全连接测试客户端服务器。 我将密钥库证书加载到SOAPUI中,并能够连接到服务器的组件。但是,当我在JMeter v2中配置相同的密钥库证书时。13,我得到了这个错误: 响应代码:非HTTP响应代码:javax。网ssl。SSLHandshakeException响应消息:非HTTP响应消息: 我已经参考了发现的许多建议,并已配置路径到我的密钥库和密码在杰米的system.proper
我有麻烦,同时使用Java发送电子邮件到Zimbra邮件服务器运行异常。 这是我的类 我在我的“主”线程中得到了以下RuntimeException堆栈跟踪。
问题内容: 是否可以在不使用Java证书的情况下将ssl与httpconnection一起使用?我想使用随机数或密钥。 感谢Raihan 问题答案: 尽管SSL / TLS并非严格要求证书,但HTTPS 要求使用证书,因为RFC 2818 (尤其是第3.1节)明确提到了X.509证书。 您可以在ServerFault的此答案中找到一个非常类似的问题的更多详细信息。 没有证书的任何操作都将超出RFC
我有一个带有这些命令的自签名证书链,并在Apache服务器上配置了它们 但是当我尝试 我从openssl中得到一个错误 用于生成证书的命令或配置文件有问题吗? [req] distinguished_name=req_distinguished_name x509_extensions=v3_ca dirstring_type=nobmp [req_distinguished_name] comm
谢谢你,我很乐意提供任何其他需要的细节。