tgo*_*oza 21 debian nginx web-server
这是我得到的错误:
重新加载 nginx 配置:nginx: [emerg] SSL_CTX_use_certificate_chain_file("/path/to/cert.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory error:20074002:BIOroutines:FILE_CTRL:system lib 错误:140DC002:SSL 例程:SSL_CTX_use_certificate_chain_file:system lib) nginx: 配置文件 /etc/nginx/nginx.conf 测试失败
我 100% 确定该文件在该位置,但 Nginx 似乎认为它不存在。我按照这个顺序手动合并了domain.crt和intermediate.crt。我一整天都在为这个问题挠头。我希望有人已经看到了这个错误并有一个解决方案。(附带说明,在粘贴文件位置只显示一次而不是在“没有这样的文件或目录”之后再次显示时,这不是错误)。
Jim*_*hus 19
您确定 Nginx 用户可以访问该目录吗?
还要检查.pem文件的权限,如果 Nginx 无法访问它,它可以显示为'no such file or directory'.
如果权限正确,您可以再次检查实际路径。你是如何粘贴它的(我知道你删除了目录)没有开始/可能是问题所在。
编辑
尝试将您的 SSL 设置移动到以下结构中(以及更改nginx.conf以反映):
sudo mkdir /etc/nginx/ssl
sudo chown -R root:root /etc/nginx/ssl
sudo chmod -R 600 /etc/nginx/ssl
Run Code Online (Sandbox Code Playgroud)
Nginx 可能会.pem因为权限太开放而失败(需要源代码来验证 Nginx 是否这样做),但上述设置应该可以正常工作。
小智 6
我会留下我的问题的答案,以防有人遇到这个话题。
我在 docker 容器内运行 nginx,并在尝试访问私钥文件时遇到相同的错误。挠头几个小时后,我意识到我的 docker 的 nginx 没有包含我的数据的挂载卷。
添加挂载卷的唯一选项是使用以下选项删除并重新创建容器-v:
https ://docs.docker.com/engine/tutorials/dockervolumes/
docker run -d -P --name docker-nginx -v /etc/ssl/certs:/etc/ssl/certs nginx
Run Code Online (Sandbox Code Playgroud)
有时候,琐碎的事情很难看清。希望这有帮助。
| 归档时间: |
|
| 查看次数: |
115234 次 |
| 最近记录: |