现在的情况。同一个内部网络上有 2 个节点(我们称它们为 Bus 和 Broker)。内部 CA 已签署 2 周前提出的请求。此签名证书已正确插入到代理的“ keystore ”以及总线的“信任库”中。已验证两个节点的软件都使用了适当的商店。
尝试使用 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 已被弃用,导致通信协议(protocol)非法。
通过将以下行添加到代理配置来解决此问题:
<sslEnabledProtocols>TLSv1.2</sslEnabledProtocols>
将此添加到 broker.xml 下的 sslConnection 标记中。
关于java - SSL 连接被 NEED_WRAP 拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68164473/