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.keyDATA_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