[英]java SSLEngine says NEED_WRAP, call .wrap() and still NEED_WRAP
[英]SSL connection refused with NEED_WRAP
现在的情况。 在同一个内部网络上有 2 个节点(我们称它们为 Bus 和 Broker)。 内部 CA 已签署了 2 周前提出的请求。 此签名证书已正确插入到 Broker 的“密钥库”以及总线的“信任库”中。 已经验证两个节点的软件都使用了适当的存储。
当尝试使用 JMS(或 AMQP)建立安全连接时,总线的输出如下:
TID: [] [] [2021-06-16 11:47:08,949] ERROR {org.wso2.andes.transport.network.mina.MinaNetworkHandler} - Exception caught by Mina {org.wso2.andes.transport.network.mina.MinaNetworkHandler}
javax.net.ssl.SSLException: Improper close state: Status = OK HandshakeStatus = NEED_WRAP
经纪人方面的错误是:
ERROR {org.wso2.andes.transport.network.mina.MinaNetworkHandler} - Exception caught by Mina but without protocol engine to handle it
java.lang.NullPointerException
到目前为止我们排除的事情:
还使用 openssl 工具验证证书。 CRT/Key/CSR 的 MD5 哈希值都匹配。
任何提示/线索表示赞赏。
所以在支持的帮助下想通了。 如果代理配置文件的代理配置中没有明确提及,代理将回退到 TLS 1.0 。 在 Java 版本 1.8.0_292 中,TLS 1 和 1.1 已被弃用,导致通信协议非法。
通过在代理配置中添加以下行解决了这个问题:
<sslEnabledProtocols>TLSv1.2</sslEnabledProtocols>
将此添加到 broker.xml 下的 sslConnection 标记中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.