Я застрял на этом целую вечность и надеюсь, что кто-нибудь может дать совет.
Попытка установить новый сертификат SSL на сайте. При запуске nginx -t
я получаю следующую ошибку:
nginx: [emerg] BIO_new_file("/etc/nginx/ssl/mysite_com/mysite_com.crt") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/nginx/ssl/mysite_com/mysite_com.crt','r') error:2006D002:BIO routines:BIO_new_file:system lib)
nginx: configuration file /etc/nginx/nginx.conf test failed
Теперь я установил владельца / группу в mysite_com.crt так же, как файлы, которые были в предыдущей конфигурации, которые проходят тест nginx хорошо. Я также установил такие же разрешения. Даже временная установка прав доступа к файлу на 777 для тестирования дала ту же ошибку. Я также попытался создать каталог / ssl / в корне раздела с 777 и все та же ошибка. Я установил владельца на http
, который является пользователем веб-сервера на этой машине, и ничего.
Я совершенно сбит с толку. Есть предложения?
Есть только одно предложение, вы не Недостаточно прав для доступа к файлу /etc/nginx/ssl/mysite_com/mysite_com.crt
. Когда вы запускаете nginx -t
под своей учетной записью, nginx запускается с вашими разрешениями и не может получить доступ к этим файлам. Есть два способа решить эту проблему, ничего не меняя. Первый - запустите nginx -t
под учетной записью root или через sudo для проверки конфигурации, второй - запустите nginx -t
под учетной записью http, чтобы увидеть, как nginx запускается в реальной среде. Но если вы хотите внести изменения, вы можете добавить своего пользователя в группу http и попытаться запустить nginx -t
.
После предоставления разрешения как sudo chmod -R 777, если вы все еще получаете ошибку выше, запустите nginx -t от имени пользователя root, если вы не получили никаких ошибок, запустите sudo nginx -t как у любого пользователя на сервере (пользователя с привилегиями sudo) этот трюк сработал для меня
Мне потребовалось несколько часов, чтобы понять это, так что это может быть полезно для кого-то еще: если вы видите ошибку:0200100D:системная библиотека:fopen:Отказано в доступе
и разрешения правильные: проверьте apparmor
. Сообщение в /var/log/kern.log
:
type=1400 audit(1629546067.301:14345): apparmor="DENIED" operation="open" profile="..." name="..." pid=704726 comm="..." requested_mask="r" denied_mask="r" fsuid=0 ouid=0
Исправить правильный профиль в /etc/apparmor.d/