В 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


  • No labels