【问题标题】:curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s)curl:(35)无法与对等方安全通信:没有通用加密算法
【发布时间】: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


【解决方案1】:

您需要支持 CloudFlare 密码套件; CloudFlare 仅支持 TLS 协议,除此之外它们仅支持安全密码。如果客户端不支持 CloudFlare 使用的任何密码,您可能需要更新 OpenSSL 的版本。

如果您使用免费的 CloudFlare 计划,则仅支持 ECC ciphers (ECDHE-*),使用 Elliptic Curve Cryptography 的密码。如果您使用的是免费 CloudFlare 计划,则需要确保您的客户端及其操作系统支持椭圆曲线密码术。

Nginx SSL configuration 如下所示:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;

一个不太可能出现的问题是您的客户端不支持 SNI 浏览器。 CloudFlare 颁发的免费 SSL 证书需要SNI support(服务器名称指示);确保您的 Java 版本支持它。如果您不想这样做,付费 CloudFlare 计划将支持非 SNI 客户端。

【讨论】:

  • 谢谢。我们的配置运行良好(我们使用 SNI 并长期支付 CloudFlare 计划)直到这个问题.. 最终没有任何改变。所以我只是想知道在他们结束时可能会改变什么......或其他地方。
  • 我认为免费 CloudFlare 计划可能是导致此问题的原因。刚刚检查了我们的计划,它是免费的。我不知道为什么。以前肯定是付费的。感谢您的建议!
猜你喜欢
  • 2015-09-15
  • 2015-07-17
  • 2023-03-09
  • 1970-01-01
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
相关资源
最近更新 更多