【问题标题】:intermittent SSL handshake error nginx间歇性 SSL 握手错误 nginx
【发布时间】:2015-08-16 15:40:23
【问题描述】:

大约一周以来,我的 Nginx 服务器间歇性出现 SSL 问题。

我知道在 stackoverflow 上还有其他一些关于这个问题的主题,但这些答案似乎都不适用

1 这是一个真正的问题,因为当我在网站上工作时,它突然死在我身上,并在 Chrome 中出现 SSL 错误(版本 44.0.2403.155):

SSL 连接错误 ERR_SSL_PROTOCOL_ERROR

它也发生在 FF 上。

2 服务器没有内存不足(没有运行 OOM 的迹象,而且看起来一切正常)

3 在 Debian (7.8) 上运行的 Nginx (1.8.0) 或 OpenSSL(OpenSSL 1.0.1e 2013 年 2 月 11 日)没有可用的更新

4 我没有安装任何特殊的第 3 方库(仅通过 fpm 设置的标准 nginx、mariadb、php 没有电子邮件服务器)

我的日志有这些条目:

[crit] 15592#15592:*317414 SSL_do_handshake() 在 SSL 握手时失败(SSL:错误:1408A0D7:SSL > 例程:SSL3_GET_CLIENT_HELLO:缺少必需的密码),

服务器已安装 NTP 以确保服务器时间同步(对吗?)。

当我遇到问题并给它几分钟并重新加载页面时,它会再次工作,但它一直在发生。其他查看我的日志的人似乎并不经常发生这种情况。

【问题讨论】:

    标签: ssl nginx https handshake


    【解决方案1】:

    我最终得到的解决方案:

    我有多个服务器块,对一些特殊的子域使用相同的 SSL 证书,删除它完全解决了问题..

    所以基本上看来我只能在一个块中使用 CERT(即使它是通配符证书)。我认为问题不在于证书,而在于 Nginx 访问 CERT 文件或其他东西。对多个子域使用证书或正则表达式确实有效(因此只有 1 个带有证书的服务器块,但随后将域定义为 *.domain.com)

    【讨论】:

    • 那么,您在 SSL 配置中添加了另一个带有 server_name *.domain.com 的服务器块,然后从其他服务器块中删除了 SSL 配置?
    • @AJMaxwell 在我为不同的子域拥有多个服务器块之前。我使用 *.domain.com 将它们合并在一起,然后只处理该服务器块中每个子域的差异。
    【解决方案2】:

    你可以试着研究一下来解决它。

    https://forum.nginx.org/read.php?2,256373

    【讨论】:

      猜你喜欢
      • 2012-08-11
      • 2015-02-03
      • 2016-10-31
      • 2015-03-16
      • 2016-05-20
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      相关资源
      最近更新 更多