温馨提示×

怎样排查debian nginxssl问题

小樊
38
2026-09-26 21:14:44
栏目: 云计算

在 Debian 上排查 Nginx + SSL(HTTPS) 问题,可以按下面这套流程来,从「配置 → 证书 → 端口 → 日志 → 外部验证」一步步定位。


一、先看 Nginx 是否正常启动

systemctl status nginx

或

journalctl -u nginx --no-pager -n 50

常见问题:

  • 配置文件语法错误
  • 端口被占用(如 Apache)
  • 证书路径不对

二、检查 Nginx 配置语法

nginx -t

如果有错,会直接指出文件和行号。


三、确认 SSL 配置是否正确

典型 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

常见问题:

  • 证书过期
  • 域名不匹配
  • 自签名证书未被信任

六、确认 443 端口是否监听

ss -tulnp | grep 443

或

netstat -tulnp | grep 443

如果没有监听:

  • Nginx 没加载 SSL 配置
  • 配置没 reload

七、防火墙 / 安全组

Debian 常见:

iptables -L -n
# 或
ufw status

云服务器还要检查:

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

八、查看 Nginx 错误日志

tail -f /var/log/nginx/error.log

常见错误:

  • SSL_CTX_use_PrivateKey failed
  • cannot load certificate
  • SSL handshake failed

九、从外部测试 SSL

在本机或另一台机器:

curl -vI https://example.com

或

openssl s_client -connect example.com:443

在线工具:

  • https://www.ssllabs.com/ssltest/
  • https://www.certainly.com/ssl-checker/

十、HTTP 强制跳转(可选但常见)

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

十一、Let’s Encrypt 常见问题(如用了 certbot)

certbot certificates

续期:

certbot renew --dry-run

常见坑总结

✅ 证书路径写错
✅ 私钥权限太开放(应 600)
✅ 忘了 nginx -s reload
✅ 云服务器安全组没开 443
✅ 用了 CDN 但源站证书不对


如果你愿意,可以把 Nginx 配置 + 报错日志 贴出来,我可以直接帮你定位具体原因。

0 踩