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