Ubuntu
Ubuntu 中的 Nginx 無法訪問 ssl 證書
我已經在 Ubuntu 16 上生成了一個證書,我正在嘗試執行 nginx 並得到這個:
$ nginx -t nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1 nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/my_website.com/fullchain.pem") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/letsencrypt/live/my_website.com/fullchain.pem','r') error:2006D002:BIO routines:BIO_new_file:system lib) nginx: configuration file /etc/nginx/nginx.conf test failed
該證書具有標準權限
lrwxrwxrwx 1 root root
。但是為什麼 nginx 不能訪問它呢?當然,我可以這樣做,chmod 755
但那是正確的做法嗎?重新啟動 nginx 後,我的網站也在工作,但
nginx -t
仍然返回相同的錯誤。
您似乎以
nginx -t
非特權使用者的身份執行。要測試您的 nginx 配置,請嘗試:
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
或者,如果
sudo
不可用:$ su - Password: # nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
它必須可以通過 nginx 使用者或組訪問,例如 www-data。表示啟動 nginx 的使用者。
嘗試:
# setfacl -R -m u:www-data:rx /etc/letsencrypt/