在 Debian 系统上,使用 Nginx 时,SSL 证书并没有强制必须放在某个目录,但最佳实践是放在以下标准位置:
/etc/ssl/certs/
/etc/ssl/private/
⚠️ 私钥目录权限必须是
700,属主通常是root:ssl-cert或root:root
很多人在 Debian + Nginx 中这样放:
/etc/nginx/ssl/
├── example.com.crt
├── example.com.key
然后在 Nginx 配置中引用:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
}
如果你用 certbot:
/etc/letsencrypt/live/example.com/
├── fullchain.pem
└── privkey.pem
Nginx 配置示例:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
私钥必须严格保护:
chmod 600 /etc/nginx/ssl/example.com.key
chown root:root /etc/nginx/ssl/example.com.key
如果 Nginx 启动报:
SSL_CTX_use_PrivateKey_file("...") failed
通常是 权限或路径错误。
| 场景 | 推荐路径 |
|---|---|
| 自签 / 手动证书 | /etc/nginx/ssl/ |
| 系统级证书 | /etc/ssl/certs + /etc/ssl/private |
| Let’s Encrypt | /etc/letsencrypt/live/ |
如果你是 刚配 SSL 报错了,可以把错误贴出来,我可以直接帮你改配置。