SSL on PostgreSQL
Установка Certbot и сертификатов
- Проверяем работу snap
sudo snap install core; sudo snap refresh core
- Удаляем на всякий случай certbot если он был.
sudo apt-get remove certbot
- Устанавливаем snap
sudo snap install --classic certbot
- Создаем симлинк на бианрник (не уверен зачем)
sudo ln -s /snap/bin/certbot /usr/bin/certbot
- Получение сертификата
sudo certbot certonly --standalone -d db.mak-sim.ru
Настройка hook’а для PG
Создаём файл /etc/letsencrypt/renewal-hooks/deploy/postgresql.deploy
:
#!/bin/bash
umask 0177
DOMAIN=db.mak-sim.ru
DATA_DIR=/var/lib/postgresql/12/main
cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem $DATA_DIR/server.crt
cp /etc/letsencrypt/live/$DOMAIN/privkey.pem $DATA_DIR/server.key
chown postgres:postgres $DATA_DIR/server.crt $DATA_DIR/server.key
DATA_DIR
можно узнать выполнив команду:
sudo -u postgres psql -U postgres -c 'SHOW data_directory'
Файлу необходимо выдать права на исполнение.
Настройки PostgreSQL
postgresql.conf
В файле postgresql.conf
необходимо поправить:
ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
ssl_prefer_server_ciphers = on
Местоположение файла можно узнать выпонив:
sudo -u postgres psql -U postgres -c 'SHOW config_file'
pg_hba.conf
Добавляем строку
hostssl all all 0.0.0.0/0 md5