В 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
Указать сертификат в настройках PostgreSQL
Открыть конфигурационный файл $PGDATA/postgresql.conf. Добавить строчки
# Certificate ssl_cert_file = 'cert/server.crt' ssl_key_file = 'cert/server.key' ssl = on
В конфигурационных файлах Vitro в строке подключения к БД указать поддержку SSL
В файлах конфигурации
/etc/Vitro/Server/Conf/db.json /etc/Vitro/Server/Conf/workflow.json
в ключе ConnectionString добавить параметр
sslmode=VerifyCA


