如何在Java7和OpenShift应用程序之间建立HTTPS连接


How to establish a HTTPS connection between Java 7 and an OpenShift application?

OpenShift在2014年10月16日左右迅速解决了SSL"Poodle"漏洞。从那时起,与我合作的电子商务提供商无法再与我的OpenShift PHP应用程序建立安全的HTTPS连接。我怀疑这至少在一定程度上是因为SSL3不再是一个可用的协议。

电子商务提供商端记录的错误为:

javax.net.ssl.SSLException
java.lang.RuntimeException: Could not generate DH keypair

以下是我迄今为止尝试并发现的内容:

上的在线SSL测试工具https://www.ssllabs.com/ssltest/表示我的SSL证书安装正确(通过OpenShift WebConsole安装),并且获得了"A"级。HTTPS在普通web浏览器中连接到我的OpenShift PHP应用程序时运行良好。一般来说,SSL证书&安装本身似乎很好。

作为测试,我尝试使用OpenShift的共享SSL证书,而不是我自己的,结果完全相同。

Java 7

试图通过HTTPS连接到我的OpenShift PHP应用程序的远程电子商务平台使用Java 7。技术支持认为问题在于他们的Java 7系统不支持加密密钥长度>1024位。不幸的是,他们目前无法将系统升级到Java8,所以他们有点手足无措。

握手模拟

我的SSL证书的sslabs分析包括对各种客户端的有用握手模拟测试。这实际上显示了使用TLS1.0连接正常的Java 7模拟,然而Java 6模拟失败,并显示"客户端不支持DH参数>1024位的错误——大致反映了电子商务技术支持部门基于Java 7的系统所报告的情况。

我该如何解决这个问题?缩小问题范围:

我的电子商务提供商是否可以在他们的一端进行简单的调整,以启用到OpenShift应用程序的HTTPS连接,而不必升级Java或进行可能影响其他人的重大更改?例如,接受DH参数的选项>1024位。

我有什么可以调整的吗(可能是OpenShift或PHP设置),以使他们基于Java 7的系统能够成功地与我的OpenShift应用程序建立HTTPS连接?例如指示OpenShift提供DH参数<=1024位。

重新启动应用程序应该可以解决这个问题,因为它将获得最新的JDK,其中应该包含该问题的最新修复程序。

https://bugzilla.redhat.com/show_bug.cgi?id=1035818
https://bugzilla.redhat.com/show_bug.cgi?id=1080125