nginx 无法重新加载:SSL_CTX_use_certificate_chain_file 失败

nginx 无法重新加载:SSL_CTX_use_certificate_chain_file 失败

我试图增加nginx.conf文件中的 client_max_body_size 限制,但执行后service nginx restart系统返回错误:

2017/02/21 14:39:18 [emerg] 17371#0: SSL_CTX_use_certificate_chain_file
("/etc/letsencrypt/live/mywebsiteaddress.com/fullchain.pem")
failed (SSL: error:0200100D:system library:fopen:Permission
denied error:20074002:BIO routines:FILE_CTRL:system lib error:140DC002:SSL
routines:SSL_CTX_use_certificate_chain_file:system lib)
nginx: configuration file /etc/nginx/nginx.conf test failed

我不知道问题可能出在哪里。有人能帮我吗?谢谢!

一些解决方案建议检查sestatus -v- 但我得到的是sestatus: command not found

我在使用 Ubuntu 12.04.5 LTS。

答案1

错误消息中最重要的部分是fopen:权限被拒绝错误:。这意味着 nginx 服务器(通常以 nginx 用户身份运行)无法访问证书文件/etc/letsencrypt/live/mywebsiteaddress.com/fullchain.pem

由于您已经测试了该文件的权限(其为 0777),这可能意味着 nginx 无法进入路径上的目录。

您应该检查 的权限/etc/letsencrypt/live/mywebsiteaddress.com//etc/letsencrypt/live//etc/letsencrypt/验证 nginx 是否可以进入目录(查看此答案了解详情)。

如果目录没有将用户或组设置为 nginx,则可以添加进入目录权限对其他人

chmod o+X /etc/letsencrypt/DIRECTORY_NAME

如果路径上的某些目录由nginx组拥有(可能应该是),则应添加进入目录权限与...分组

chmod g+X /etc/letsencrypt/DIRECTORY_NAME

其他可能产生的原因权限定义是 SELinux(但这在 Ubuntu 12 中是不可能的,而且您已经检查过了)、chroot 和许多其他的,但这些也是不太可能的(您可能会提到使用一些特殊配置)。

相关内容