java - SSL 连接被 NEED_WRAP 拒绝

标签 java ssl wso2 wso2-enterprise-integrator wso2-message-broker

现在的情况。同一个内部网络上有 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
到目前为止我们排除的内容:
  • 证书是有效的,它的链也是有效的(它仍然在到期日之前)
  • truststore 和 keystore 中条目的序列号匹配
  • 软件上用于解密条目的密码是正确的
  • 实际正确的商店正在使用中(商店中有另一个 key 匹配另一个有效的服务)
  • keystore 条目用于正确的域(并且有 2 个替代项)
  • 证书的副本已全部从信任库中删除

  • 还完成了使用 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/

    相关文章:

    django - 为什么我的Django服务器只能本地访问?

    wordpress - wp_remote_post 在 SSL 连接上返回错误

    wso2 - 如何将 JWT 与 Ballerina 一起使用

    wso2 - Siddhi - 尝试部署时业务规则管理器失败

    wso2 - 使用 vfs 写入文件时从输出中删除 <text>-tag

    java - 停止/启动网络连接

    java - Spring Boot ASync + AutoWired Executor 与手动 Executor + Future/Callable?

    java - Android Google 登录失败 com.google.android.gms.common.api.ApiException : 12500

    java - 更改 Firebase 数据时 ListView 不会更新

    ssl - HTTPS (ssl) 究竟是如何工作的