ssl - 间歇性 SSL 握手错误 nginx

标签 ssl nginx https handshake

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

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

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 以确保服务器时间同步(对吗?)。

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

最佳答案

我最终得到的解决方案:

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

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

关于ssl - 间歇性 SSL 握手错误 nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32036934/

相关文章:

node.js - NodeJS supertest - 使用证书测试路由

NGINX 使用客户端证书 (ssl_verify_client)

java - 如何确保客户端-服务器应用程序中的通信安全?

azure - Powershell Azure : Could not create SSL/TLS secure channel

ruby-on-rails - rails/Ubuntu : SSLv3 read server certificate B: certificate verify failed

proxy - Nginx proxy_pass 到受密码保护的上游

node.js - req.protocol 从不在 nginx 代理后面提供 https

amazon-web-services - 亚马逊 ec2 端口 443 未打开

ssl - 将 activemq 客户端配置为仅使用 ssl 进行加密

nginx - 为每个服务配置不同路径重写的 Kubernetes Traefik Ingress