在 Debian 上配置 Nginx + SSL 常见报错很多,下面我按常见错误类型给你总结,你对照看看是哪一种,也可以把具体报错信息贴出来,我帮你精确定位。
SSL_CTX_use_certificate_chain_file 失败报错示例
SSL_CTX_use_certificate_chain_file("/path/to/cert.pem") failed
原因
解决
# 检查证书路径
ls -l /etc/nginx/ssl/
# 检查证书格式
openssl x509 -in cert.pem -text -noout
# 检查私钥是否匹配
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in key.pem | openssl md5
两个 md5 必须一致。
cannot load certificate 权限问题报错示例
cannot load certificate "/etc/nginx/ssl/cert.pem": Permission denied
解决
chmod 644 /etc/nginx/ssl/*.pem
chmod 600 /etc/nginx/ssl/*.key
chown root:root /etc/nginx/ssl/*
报错示例
nginx: [emerg] unknown directive "ssl"
原因
nginx-full 或 ssl 模块解决
nginx -V | grep ssl
如果没有 --with-http_ssl_module:
apt update
apt install nginx-full
报错示例
bind() to 0.0.0.0:443 failed (98: Address already in use)
解决
ss -lntp | grep 443
杀掉占用进程,或检查是否有重复 listen 443。
报错示例
Failed authorization procedure
解决
# 确认 80 端口可访问
ufw allow 80
ufw allow 443
# 重新申请
certbot --nginx -d yourdomain.com
报错示例
no shared cipher
解决(推荐配置)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# 1. 测试配置
nginx -t
# 2. 看错误日志
tail -n 50 /var/log/nginx/error.log
# 3. 重载
systemctl reload nginx
请把以下信息发我:
nginx -t 输出/etc/nginx/sites-enabled/xxx 的 SSL 配置cat /etc/os-release)我可以直接帮你改配置 ✅