1

现在的情况。同一个内部网络上有 2 个节点(我们称它们为 Bus 和 Broker)。内部 CA 已签署 2 周前提出的请求。此签名证书已正确插入到代理的“密钥库”以及总线的“信任库”中。已验证两个节点的软件都使用了适当的商店。

尝试使用 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

到目前为止我们排除的内容:

  • 证书是有效的,它的链也是有效的(它仍然在到期日之前)
  • truststore 和 keystore 中条目的序列号匹配
  • 软件上用于解密条目的密码是正确的
  • 实际正确的商店正在使用中(商店中有另一个密钥匹配另一个有效的服务)
  • 密钥库条目用于正确的域(并且有 2 个替代项)
  • 证书的副本全部从信任库中删除

还完成了使用 openssl 工具对证书的验证。CRT/Key/CSR 的 MD5 哈希值全部匹配。

任何提示/线索表示赞赏。

4

1 回答 1

0

所以在支持的帮助下想通了。如果没有在代理配置文件的代理配置中明确提及,代理将回退到 TLS 1.0。在 java 版本 1.8.0_292 中,TLS 1 和 1.1 已被弃用,导致通信协议非法。

通过将以下行添加到代理配置来解决此问题:

<sslEnabledProtocols>TLSv1.2</sslEnabledProtocols>

将此添加到 broker.xml 下的 sslConnection 标记中。

于 2021-07-08T07:14:12.520 回答