在 Debian 上排查 Nginx + SSL(HTTPS) 问题,可以按下面这套思路一步步来,基本能解决 90% 的情况。
systemctl status nginx
或
ps aux | grep nginx
如果没启动:
journalctl -u nginx -xe
看具体报错。
nginx -t
常见错误:
listen 443 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
云服务器还要看:
ss -lntp | grep 443
如果没有 443,说明 Nginx 没加载 SSL 配置。
tail -n 50 /var/log/nginx/error.log
常见错误:
cannot load certificateSSL_CTX_use_PrivateKey_file failed PEM_read_bio_X509 failedopenssl s_client -connect example.com:443
能看到证书信息说明 SSL 正常。
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 配置 贴出来,我可以直接帮你定位问题。