Nginx 配置 SSL 证书出现 Permission denied 权限报错完整排坑记录
一、问题现象
在 /etc/nginx/ssl/ 目录手动上传域名 SSL 证书,配置 Nginx HTTPS 反向代理后,执行配置校验命令:
nginx -T | grep -E 'ssl_certificate|ssl_certificate_key'
终端抛出致命错误:
[emerg] cannot load certificate "/etc/nginx/ssl/fangkuai/fangkuai.cloud_bundle.crt": BIO_new_file() failed (SSL: error:system lib;Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed报错核心含义:Nginx 进程无读取证书文件的权限,配置校验直接失败,无法重载 Nginx。
补充说明:
当前 Nginx 已经在运行,临时访问网站 HTTPS 暂时正常;但一旦服务器重启、手动重载 Nginx、更新配置,服务会直接宕机,博客、监控面板全部无法访问,属于隐藏高危问题,必须修复。
二、问题根源
证书文件上传后默认权限过窄,Nginx 工作进程无法读取
.crt证书文件;证书目录、文件归属不是 root 用户,系统拒绝 Nginx 读取文件。
三、完整修复步骤
1. 批量修正证书目录与文件权限
# 1. 给ssl根目录开放全局读权限
sudo chmod -R 755 /etc/nginx/ssl
# 2. 证书公钥文件设置标准读取权限
sudo chmod -R 644 /etc/nginx/ssl/fangkuai/*.crt
# 3. 私钥文件收紧权限,仅root可读(安全规范)
sudo chmod -R 600 /etc/nginx/ssl/fangkuai/*.key
# 4. 修改目录&文件归属为root用户
sudo chown -R root:root /etc/nginx/ssl2. 校验 Nginx 配置是否修复成功
sudo nginx -t输出以下内容,此代表权限问题彻底解决:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful3. 平滑重载 Nginx,加载新证书配置
sudo nginx -s reload出现 notice 日志即重载完成,不中断现有网站访问:
2026/06/25 14:36:58 [notice] signal process started4. 验证文件权限是否符合规范
ls -l /etc/nginx/ssl/fangkuai/fangkuai.cloud_bundle.crt正常输出示例:
-rw-r--r-- 1 root root 7074 Jun 24 23:23 /etc/nginx/ssl/fangkuai/fangkuai.cloud_bundle.crt权限
644:所有用户可读,满足 Nginx 读取需求;属主属组
root:root:符合 Linux 系统服务安全标准。
四、HTTPS 有效性验证
ICP还在审批,无法验证,等后续进行补充。