我有一个连接到支付网关以验证 CC 交易的 Java 代理。
当 Java 逻辑在我的 IBM Notes 客户端 (9.0.1FP10IF3) 上运行时,一切似乎都运行良好。
我现在正在将逻辑迁移到我的 Domino 服务器 (9.0.1FP6) 上的托管 bean。
每当通过 bean 建立连接时,我都会在服务器控制台上观察到以下错误...
HTTP JVM: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
我确定这是因为我尝试与之通信的支付网关最近已升级为强制执行 TLS 1.2 通信。
但是,我不确定如何在 Domino 服务器端执行这些通信?
我已经设置了推荐的 NOTES.INI 变量...
DISABLE_SSLV3=1
SSL_DISABLE_TLS_10=1
...并设置“SSLCipherSpec”,但没有任何效果。
这是我用来测试所有内容的逻辑的摘录。
“DataOutputStream”行是触发错误的原因...
URL url = new URL("https://host/endpoint");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setAllowUserInteraction(false);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestProperty("Content-type", "text/xml");
connection.setRequestProperty("Content-length", Integer.toString(postContent.length()));
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
out.writeBytes(postContent);
out.flush();
out.close();
connection.disconnect();
如有任何建议/协助,我们将不胜感激!
最佳答案
根据 Per 的回答,这份文件让我可以立即解决问题......
关于通过 Domino 受管 bean 到支付网关的 SSL 连接失败,返回 'handshake_failure',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50245589/