【发布时间】:2016-11-22 11:36:25
【问题描述】:
我们的应用程序长期部署到 AWS 基础设施。
我们使用 ClaudFlare 进行缓存和 CDN。 我们有两个应用程序 - Java(Tomcat 8) 和 WordPress(PHP Nginx + FastCGI)。
对于 Java 应用程序,我们使用带有 OpenJDK 8 的 EC2 实例。此外,我们在另一个 EC2 实例上安装了 WordPress。
Java 应用程序通过直接调用 https 协议与 WordPress 进行通信。
我们使用 Puppet 进行 AWS 基础设施配置。
一切正常,但几天前我们的 Java 应用程序无法通过 https 连接到 WordPress,但出现以下异常:
Received fatal alert: handshake_failure
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
此外,我们无法通过 curl 连接到相同的 WordPress 网址,并出现以下错误:
curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s).
这很奇怪,因为我们这边绝对没有任何改变。
仅用于实验 - 我们已禁用 ClaudFlare,我们的系统开始正常工作。之后我们启用了 ClaudFlare,系统再次失败。
只有从 OpenJDK 切换到 OracleJDK 才能完全解决这个问题。
CloudFlare 告诉我们,他们的 SSL 没有任何改变。
所以我想知道这个问题的原因是什么?可能是 AWS 端发生了一些变化(基础设施或一些软件包)
【问题讨论】:
-
你是如何在wordpress上配置https的?
-
我可能是错的,但看起来它是在我们的 Nginx 和 ClaudFlare 上配置的
-
这就是您最近应用的更改? OpenJDK 转 OracleJDK 还是不改应用失败?
-
我们这边绝对没有任何更改,应用程序失败。经过几个小时的调试,我能够解决 OracleJDK 的问题..
-
所以现在问题已经解决了,那么您还在寻找什么?
标签: java amazon-web-services https cloudflare openjdk