首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ssl_certificate路径中使用变量时获得权限错误

在ssl_certificate路径中使用变量时获得权限错误
EN

Server Fault用户
提问于 2019-09-22 15:43:32
回答 1查看 1.5K关注 0票数 3

在Nginx配置中,尝试动态加载ssl_certificate但加载

使用$ssl_server_name变量

代码语言:javascript
复制
   ssl_certificate /etc/letsencrypt/live/$ssl_server_name/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/$ssl_server_name/privkey.pem;

获取此权限错误

│2019/09/22 08:29:42 7714#7714:*3无法加载证书7714#7714 BIO_new_file()失败( SSL :错误:0200100D:系统库:fopen: denied:fopen('/etc/letsencrypt/live/example.com/fullchain.pem','r')错误:2006D002:BIO routines:BIO_new_file:system lib)而SSL握手,client:,服务器: 0.0.0.0:443

但不使用变量,它可以工作!

代码语言:javascript
复制
  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

有基于server_name的动态加载ssl_certificate的方法吗?

尝试过很少的参考,但仍无法解决。

  1. 在ssl中使用变量的nginx配置_证书路径引发权限错误
  2. https://trac.nginx.org/nginx/ticket/1744
EN

回答 1

Server Fault用户

发布于 2022-07-05 15:05:44

只需在这里添加响应,以防有人遇到相同的问题。

当nginx开始时,它作为root开始。如果不使用变量,则可以在此时(以root用户身份)加载证书文件。

但是,如果您使用的是变量,则这些文件的加载需要等到请求到达时,此时nginx不再以您在.conf中指定的用户的身份作为根总线运行。看起来这个用户无法读取这些文件。

这就是为什么它在没有变量的情况下工作(以根用户身份打开文件),而在使用这些变量时(尝试以另一个用户的身份打开文件)则不起作用。

您只需要让nginx用户能够读取这些文件。

票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/985187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档