SSL on PostgreSQL

Установка Certbot ΠΈ сСртификатов

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ snap
sudo snap install core; sudo snap refresh core
  1. УдаляСм Π½Π° всякий случай certbot Ссли ΠΎΠ½ Π±Ρ‹Π».
sudo apt-get remove certbot
  1. УстанавливаСм snap
sudo snap install --classic certbot
  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ симлинк Π½Π° Π±ΠΈΠ°Π½Ρ€Π½ΠΈΠΊ (Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½ Π·Π°Ρ‡Π΅ΠΌ)
sudo ln -s /snap/bin/certbot /usr/bin/certbot
  1. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСртификата
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