在 Debian 上排查 Nginx + SSL(HTTPS) 问题,可以按下面这套流程来,从「配置 → 证书 → 端口 → 日志 → 外部验证」一步步定位。
systemctl status nginx
或
journalctl -u nginx --no-pager -n 50
常见问题:
nginx -t
如果有错,会直接指出文件和行号。
典型 HTTPS server 配置示例:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
location / {
root /var/www/html;
index index.html;
}
}
检查点:
listen 443 ssl; 是否写对openssl x509 -noout -modulus -in fullchain.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
两个 md5 必须一致。
openssl x509 -in fullchain.pem -noout -dates
openssl x509 -in fullchain.pem -noout -subject
常见问题:
ss -tulnp | grep 443
或
netstat -tulnp | grep 443
如果没有监听:
Debian 常见:
iptables -L -n
# 或
ufw status
云服务器还要检查:
tail -f /var/log/nginx/error.log
常见错误:
SSL_CTX_use_PrivateKey failedcannot load certificateSSL handshake failed在本机或另一台机器:
curl -vI https://example.com
或
openssl s_client -connect example.com:443
在线工具:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
certbot certificates
续期:
certbot renew --dry-run
✅ 证书路径写错
✅ 私钥权限太开放(应 600)
✅ 忘了 nginx -s reload
✅ 云服务器安全组没开 443
✅ 用了 CDN 但源站证书不对
如果你愿意,可以把 Nginx 配置 + 报错日志 贴出来,我可以直接帮你定位具体原因。