在 Debian 上配置 Nginx + SSL 常见报错原因很多,下面按最常见情况给你分类说明,并给出排查方法。你看看自己属于哪一种。
SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/xxx.key") failed
cannot load certificate
ls -l /etc/nginx/ssl/
确保:
.crt 和 .key 都存在chmod 600 /etc/nginx/ssl/*.key
chown root:root /etc/nginx/ssl/*
SSL_CTX_use_PrivateKey_file("...") failed
openssl x509 -noout -modulus -in fullchain.crt | openssl md5
openssl rsa -noout -modulus -in privkey.key | openssl md5
两个 md5 必须一致
nginx: [emerg] unknown directive "ssl"
nginx-full 或 ssl 模块nginx -V | grep ssl
若没有 --with-http_ssl_module:
apt install nginx-full
Address already in use
ss -tulnp | grep :443
浏览器提示:
NET::ERR_CERT_AUTHORITY_INVALID
使用 fullchain,不是单独 crt:
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
journalctl -u nginx -xe
nginx -t
Failed authorization procedure
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 的输出journalctl -u nginx我可以一步一步帮你修。