#django #gunicorn #certbot
Вопрос:
(venv) ubuntu@ip-172-31-6-77:~/redrebelgames_python$ gunicorn redrebelgames_python.wsgi:application [2021-11-25 20:01:09 0000] [3758] [INFO] Starting gunicorn 20.1.0 Traceback (most recent call last): File "/home/ubuntu/redrebelgames_python/venv/bin/gunicorn", line 8, in lt;modulegt; sys.exit(run()) File "/home/ubuntu/redrebelgames_python/venv/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 67, in run WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() File "/home/ubuntu/redrebelgames_python/venv/lib/python3.8/site-packages/gunicorn/app/base.py", line 231, in run super().run() File "/home/ubuntu/redrebelgames_python/venv/lib/python3.8/site-packages/gunicorn/app/base.py", line 72, in run Arbiter(self).run() File "/home/ubuntu/redrebelgames_python/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 198, in run self.start() File "/home/ubuntu/redrebelgames_python/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 155, in start self.LISTENERS = sock.create_sockets(self.cfg, self.log, fds) File "/home/ubuntu/redrebelgames_python/venv/lib/python3.8/site-packages/gunicorn/sock.py", line 162, in create_sockets raise ValueError('certfile "%s" does not exist' % conf.certfile) ValueError: certfile "/etc/letsencrypt/live/api.redrebelgames.com/cert.pem" does not exist
Как я могу разрешить gunicorn доступ к этим файлам? По какой-то причине это не работает, и простое изменение разрешений chmod не сработает, потому что certbot в конечном итоге изменит их обратно.
Ответ №1:
Файлы certbot принадлежат одному идентификатору (обычно корневому). Вы управляете Gunicorn под другим именем. Ключ состоит в том, чтобы предоставить разрешение личности Gunicorn на чтение файлов Let’s Encrypt. Как правило, вы можете добавить имя пользователя Gunicorn в имя группы Let’s Encrypt identity и сделать файлы доступными для чтения группой.
Пример команды:
sudo usermod -a -G groupname username
Имя пользователя, удостоверяющее личность, должно повторно войти в систему после изменения членства в группе. Проще просто перезагрузить систему.
Другой метод (не рекомендуется) — запустить Gunicorn как привилегированный процесс. Это сопряжено с рисками для безопасности.