温馨提示×

debian nginxssl怎样排查

小樊
47
2026-09-20 23:48:30
栏目: 云计算

在 Debian 上排查 Nginx + SSL(HTTPS) 问题,可以按下面这套思路一步步来,基本能解决 90% 的情况。


一、先看 Nginx 是否在运行

systemctl status nginx

或

ps aux | grep nginx

如果没启动:

journalctl -u nginx -xe

看具体报错。


二、检查 SSL 配置文件语法

nginx -t

常见错误:

  • 证书路径写错
  • 括号不匹配
  • listen 443 ssl 漏写 ssl

三、确认 SSL 配置是否正确

典型配置示例:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    location / {
        root /var/www/html;
        index index.html;
    }
}

检查要点: ✅ listen 443 ssl;
✅ 证书和 key 路径正确
✅ 证书和 key 匹配
✅ 域名和证书 CN / SAN 一致


四、检查证书和私钥是否匹配

openssl x509 -noout -modulus -in cert.crt | openssl md5
openssl rsa -noout -modulus -in key.key | openssl md5

两个 md5 必须一致。


五、检查防火墙 / 安全组

Debian 本地:

iptables -L
# 或
ufw status

云服务器还要看:

  • 安全组是否放行 443
  • 是否只开了 80

六、确认端口是否在监听

ss -lntp | grep 443

如果没有 443,说明 Nginx 没加载 SSL 配置。


七、查看 Nginx 错误日志

tail -n 50 /var/log/nginx/error.log

常见错误:

  • cannot load certificate
  • SSL_CTX_use_PrivateKey_file failed
  • PEM_read_bio_X509 failed

八、用 openssl 测试 SSL

openssl s_client -connect example.com:443

能看到证书信息说明 SSL 正常。


九、HTTP 强制跳转 HTTPS(可选)

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

十、常见坑总结

❌ 证书是 自签 但浏览器不信任
❌ 用了 Let’s Encrypt 但没续期
❌ 证书链不完整(缺 intermediate)
❌ Nginx 没 reload:nginx -s reload


如果你愿意,可以把 具体报错信息 或 nginx.conf / site 配置 贴出来,我可以直接帮你定位问题。

0 踩