В PostgreSQL встроена поддержка SSL для шифрования трафика между клиентом и сервером, что повышает уровень безопасности системы.
Порядок действий для включения поддержки SSL. Команды выполняются под суперпользователем
Cамоподписанный сертификат может успешно применяться при тестировании, в производственной среде следует использовать сертификат, подписанный центром сертификации (ЦС) (обычно это корневой ЦС предприятия).
Для создания самоподписанного сертификата нужно перейти в папку с конфигурационными файлами PostgreSQL. Для PostgreSQL 14 данная папка расположена по пути /etc/postgresql/14/main. Путь до файлов конфигурации PоstgreSQL на конкретной установке можно узнать если выполнить команду:
sudo -u postgres psql -c 'SHOW config_file;' |
Команды указаны для пути /etc/postgresql/14/main.
Перейти в папку с конфигурационными файлами PostgreSQL
cd /etc/postgresql/14/main |
Внутри создать папку cert
mkdir /etc/postgresql/14/main/cert |
перейти в папку
cd /etc/postgresql/14/main/cert |
Выпустить сертификат командой openssl заменив dbhost.yourdomain.com именем компьютера, где размещён сервер
openssl req -new -x509 -days 365 -nodes -text -out server.crt -keyout server.key -subj "/CN=dbhost.yourdomain.com" |
Назначить права
chmod og-rwx server.key chown -R postgres:postgres /etc/postgresql/14/main/cert |
Добавить созданный сертификат как доверенный
cp /etc/postgresql/14/data/cert/server.crt /usr/local/share/ca-certificates update-ca-certificates |
Открыть конфигурационный файл $PGDATA/postgresql.conf. Добавить строчки
# Certificate ssl_cert_file = 'cert/server.crt' ssl_key_file = 'cert/server.key' ssl = on |

В файлах конфигурации
/etc/Vitro/Server/Conf/db.json /etc/Vitro/Server/Conf/workflow.json |
в ключе ConnectionString добавить параметр
sslmode=VerifyCA |

