Назад | Перейти на главную страницу

Используйте сертификаты Letsencrypt для Postgresql

Я успешно настроил 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, (по крайней мере, на centos) / etc / letsencrypt / archove / [ваш fqdn здесь], поскольку файлы в / etc / letsencrypt / live / [ваш fqdn здесь] являются просто символическими ссылками