“Debian + Nginx + SSL 报错”是一个比较宽泛的问题,需要先看具体报错信息才能精准解决。下面我按常见场景给你一个排查与解决清单,你对照看看属于哪一种。
sudo nginx -t
sudo systemctl reload nginx
常见错误示例:
cannot load certificateSSL_CTX_use_PrivateKey failedunknown directive "ssl"unknown directive "ssl"原因:Nginx 没有编译 SSL 模块(极少见)
解决:
nginx -V | grep ssl
如果没有 --with-http_ssl_module:
sudo apt install nginx-full
cannot load certificate "/path/cert.pem"原因:
解决:
ls -l /etc/nginx/ssl/
确保:
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
权限:
chmod 600 /etc/nginx/ssl/*.pem
chown root:root /etc/nginx/ssl/*.pem
SSL_CTX_use_PrivateKey failed原因:证书和私钥不匹配
解决:
openssl x509 -noout -modulus -in fullchain.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
两个 md5 必须一致
常见:
Permission deniedCertbot failed解决:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
续期:
sudo certbot renew
现象:浏览器打不开 https
检查:
sudo ufw allow 443/tcp
sudo ufw status
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location / {
root /var/www/html;
index index.html;
}
}
你可以直接贴出:
nginx -t 的输出cat /etc/os-release)如果你愿意,把具体报错复制过来,我可以一步一步帮你改到能跑 ✅