Я успешно настроил Letsencrypt для моего веб-сервера NGINX на Debian 8 Jessie.
Теперь я установил Postgresql 9.4 и хочу использовать сертификаты LE (в / etc / letsencrypt / live / mydomain / com / ...
) для его SSL-соединения. Я установил пути к сертификат и ключ в файле конфигурации ( /etc/postgresql/9.4/main/postgresql.conf
).
Как и ожидалось, когда я пытаюсь перезапустить Postgres через pg_ctlcluster
, он терпит неудачу из-за Permission denied
для сертификата. Я понимаю, что Postgresql запускается с пользователем postgres и что этот пользователь не имеет доступа к этому каталогу.
Как мне исправить это простым способом?
Вы можете либо добавить пользователя postgres в группу wheel или другую группу, которая может иметь доступ к каталогу /etc/letsencrypt/live/mydomain/, либо сделать пользователя postgres владельцем сертификата (если используется исключительно).
Пример команды сделать владельца postgres гипотетическим
sudo mkdir /etc/postgres/
sudo mv /etc/letsencrypt/live/mydomain/com/pg.crt /etc/postgres/pg.crt
sudo mv /etc/letsencrypt/live/mydomain/com/pg.key /etc/postgres/pg.key
sudo chown -R postgres: /etc/postgres
Затем необходимо настроить /etc/postgresql/9.4/main/postgresql.conf на указание на новый путь.
.или добавить acl в каталог, в котором хранится ключ (сделайте его acl по умолчанию, чтобы он работал при добавлении новых файлов). PS: Каталог, в котором вы должны установить acl on - это (по крайней мере, на centos) /etc/letsencrypt/archove/[ваш fqdn здесь], так как файлы в /etc/letsencrypt/live/[ваш fqdn здесь] - это просто symlinks
.