Gunicorn не может получить доступ позволяет шифровать файлы
(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 <module>
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 в конце концов изменит их обратно.
Файлы certbot принадлежат одной личности (обычно root). Вы запускаете Gunicorn под другим именем. Ключевым моментом является предоставление разрешения идентификатору Gunicorn на чтение файлов Let's Encrypt. Обычно вы можете добавить имя пользователя Gunicorn к имени группы Let's Encrypt и сделать файлы доступными для чтения этой группой.
Пример команды:
sudo usermod -a -G groupname username
Идентификатор имя пользователя должен повторно войти в систему после изменения членства в группе. Проще просто перезапустить систему.
Другой способ (не рекомендуется) - запустить Gunicorn как привилегированный процесс. Это связано с риском для безопасности.