Nginx в Ubuntu не имеет доступа к 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 по-прежнему возвращает те же ошибки.

1
задан 23 August 2016 в 17:55
2 ответа

Похоже, вы используете 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
0
ответ дан 4 December 2019 в 05:56

Он должен быть доступен через пользователя или группу nginx, например www-data. Это означает, что пользователь запустил nginx.

Попробуйте:

# setfacl -R -m u:www-data:rx /etc/letsencrypt/
0
ответ дан 4 December 2019 в 05:56

Теги

Похожие вопросы