在 Debian 上部署 Nginx 时,SSL 证书放在哪里并没有强制规定,但有一些约定俗成、好维护、安全的做法。下面给你一个清晰建议。
/etc/nginx/ssl/
或按域名分目录:
/etc/nginx/ssl/example.com/
示例结构:
/etc/nginx/ssl/example.com/
├── fullchain.pem
├── privkey.pem
fullchain.pem:证书 + 中间证书
privkey.pem:私钥(最重要,不能泄露)
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
}
私钥必须严格限制权限:
chmod 600 /etc/nginx/ssl/example.com/privkey.pem
chown root:root /etc/nginx/ssl/example.com/privkey.pem
证书文件:
chmod 644 fullchain.pem
如果你用 certbot,它默认会放在:
/etc/letsencrypt/live/example.com/
Nginx 配置直接引用:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
✅ 这是 Debian + Nginx 最推荐方案
| 位置 | 原因 |
|---|---|
/var/www/ |
可能被 Web 访问泄露 |
/home/xxx/ |
权限混乱,Nginx 可能读不到 |
/tmp/ |
不安全,重启可能丢失 |
Debian + Nginx SSL 证书,放
/etc/nginx/ssl/或 Let’s Encrypt 默认目录最稳妥
如果你是:
/etc/nginx/ssl/如果你愿意,我可以: