You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新Let's Encrypt证书后网站遇SSL协议错误,求助排查(免重装)

解决更新Let's Encrypt证书后Nginx的SSL协议错误问题

先别着急重装服务器,咱们一步步排查,大概率能找到问题所在:

1. 先确认证书本身的有效性与路径

  • 首先验证Let's Encrypt更新后的证书是否正常,用这条命令查看证书的有效期和核心信息:
    openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -text -noout
    
  • 核对Nginx配置里的ssl_certificate和ssl_certificate_key路径,必须指向/etc/letsencrypt/live/example.com/下的文件——因为Let's Encrypt更新后会自动替换这个目录下的符号链接,要是你配置里写的是旧的存档路径,肯定会出问题。

2. 补全Nginx的SSL协议兼容配置

你的配置片段只写了ssl,但缺少对TLS版本和加密套件的明确配置,这很可能导致客户端连接时出现协议不匹配的错误。建议把SSL相关配置补全:

server {
    listen 99.99.99.99:443 ssl;
    server_name example.com;

    # 证书路径务必和实际一致
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # 指定兼容现代客户端的TLS版本
    ssl_protocols TLSv1.2 TLSv1.3;
    # 配置安全且兼容的加密套件
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    # 其他业务配置...
}

3. 测试Nginx配置并强制重启

  • 先检查配置有没有语法错误:
    nginx -t
    
  • 如果提示test is successful,直接重启Nginx(别用reload,有时候旧证书缓存没清,重启更彻底):
    systemctl restart nginx
    

4. 用openssl精准定位连接问题

你之前用过openssl,再用这两条命令分别测试TLS1.2和TLS1.3的连接,看具体报错:

openssl s_client -connect example.com:443 -tls1_2
openssl s_client -connect example.com:443 -tls1_3

输出里如果有certificate verify failed或者protocol version mismatch这类关键词,就能直接定位问题点。

5. 检查Let's Encrypt的更新日志

看看证书更新过程中有没有异常,日志路径一般是/var/log/letsencrypt/letsencrypt.log,搜索failed或error关键词,说不定更新时证书就没正确生成。

要是这些步骤都试过还是没解决,你可以把openssl测试的完整输出、Nginx的完整配置(敏感信息打码)贴出来,咱们再接着深挖——真的没必要直接重装服务器,这类SSL问题大多是配置细节或证书路径的小疏漏。

内容的提问来源于stack exchange,提问作者mrvol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:58:22