间歇性 SSL 握手错误 nginx

intermittent SSL handshake error nginx

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

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

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

SSL connection error 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 方库(只有标准的 nginx、mariadb,php 通过 fpm 设置没有电子邮件服务器)

我的日志有这些条目:

[crit] 15592#15592: *317414 SSL_do_handshake() failed (SSL: error:1408A0D7:SSL > routines:SSL3_GET_CLIENT_HELLO:required cipher missing) while SSL handshaking,

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

当我遇到问题并给它几分钟并重新加载页面时,它再次运行但它一直在发生。对于查看我的日志的其他人来说,这似乎并不经常发生。

您可以尝试研究一下以解决它。

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

我最终得到的解决方案:

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

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