我正在对使用 QuickFIX/J 并使用 Groovy 2.4.5 编写并使用 Gradle 2.10 构建的应用程序进行故障排除。此 FIX 服务器还通过 Spring-boot 1.2.6 提供 API。

虽然当从 OS X 运行时应用程序可以通过 SSL 连接连接到测试对等接受器,但当从 Ubuntu 14.04 运行时它不起作用。

Linux 事件日志:

[timestamp]: Disconnecting: Socket exception (/[ip:port]): javax.net.ssl.SSLHandshakeException: SSL handshake failed.

我已尝试使用 keytool 检查证书,但没有发现证书有问题。我还检查了文件路径是否匹配大小写,排除了 OSX 文件系统不区分大小写的性质。

证书由运行接受器的公司生成并签名。我该如何进一步解决 Ubuntu 上的握手失败问题?


更新

在为 QuickFIX/J 实现更多日志记录后,我获得了额外的信息。我尝试过的所有谷歌搜索都没有很好地解释错误的含义:

[timestamp] [NioProcessor-3] DEBUG o.apache.mina.filter.ssl.SslHandler - Unexpected exception from SSLEngine.closeInbound(). javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?

请您参考如下方法:

就我而言,事实证明这是 QuickFIX/J 库使用的 Apache Mina 版本的问题。我们改用 Stunnel,所以我不知道这个错误是否已经修复。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!