Для настройки TLS‑соединения Центра регистрации Aladdin Enterprise Registration Authority c СУБД необходимо в предварительно развёрнутом и инициализированном Центре сертификации Aladdin Enterprise Certification Authority создать сертификат с закрытым ключом (PKCS#12) для сервера СУБД. При этом в сертификате сервера СУБД в атрибуте Common Name или в атрибуте Subject Alternative Name типа dNSName обязательно должно быть указано доменное сервера СУБД (или IP‑адрес)[1], так как Центр регистрации Aladdin eRA аутентифицирует сервер СУБД в режиме «verify‑full», который предполагает проверку соответствия имени узла сервера имени, записанному в сертификате. Для создания сертификата может быть использован шаблон «WEB‑Server» (необходимо предварительно создать локальный субъект в Центре Сертификации Aladdin eCA, указав ему необходимые атрибуты CN и DNS Name).
Во избежание ошибок в работе Центра Регистрации Aladdin eRA перед началом настройки TLS‑соединения с СУБД рекомендуется остановить работу Центра Регистрации Aladdin eRA путём выполнения команды sudo systemctl stop aeca‑ra.service.
Для настройки TLS‑соединения Центра Регистрации Aladdin eRA c СУБД необходимо:
- выполнить настройку СУБД в соответствии с разделом 3.1 настоящего приложения, представленным ниже;
- выполнить настройку Центра Регистрации Aladdin eRA в соответствии с разделом 3.2 настоящего приложения, представленным ниже.
[1] Указанное в сертификате доменное сервера СУБД (или IP-адрес) должно соответствовать значению параметра «database_host» конфигурационного файла Центра регистрации Aladdin eRA.
Настройка на хосте СУБД
1) На хосте с установленной и настроенной СУБД отредактировать файл /var/lib/pgsql/15/data/postgresql.conf (или var/lib/jatoba/4/data/postgresql.conf, если используется СУБД Jatoba)[1], указав:
- в параметре «ssl» значение «on»;
- в параметре «ssl_cert_file» абсолютный путь к файлу сертификата сервера СУБД[2];
- в параметре «ssl_key_file» абсолютный путь к файлу закрытого ключа сервера СУБД[3];
- в параметре «ssl_ca_file» абсолютный путь к файлу цепочки сертификатов издателя сертификата СУБД[4].
При этом указанные выше файлы должны иметь метку доступа «600», установить которую можно с помощью команды sudo chmod 600 путь_к_файлу для каждого файла. Владельцем всех указанных выше файлов необходимо назначить пользователя «postgres», выполнив команду sudo chown postgres:postgres путь_к_файлу для всех перечисленных файлов. Указанные файлы должны располагаться в каталоге, к которому имеет доступ пользователь postgres (например, /tmp). В случае использования ОС РЕД ОС на хосте СУБД указанные выше файлы должны располагаться в каталоге /var/lib/pgsql (или /var/lib/jatoba, если используется СУБД Jatoba). При этом указанные выше файлы должны быть скопированы в нужный каталог, а не перемещены.
Пример значений отредактированных параметров конфигурационного файла СУБД postgresql.conf:
# ‑ SSL ‑ssl = onssl_cert_file = '/tmp/cert.pem'ssl_key_file = '/tmp/key.key'ssl_ca_file = '/tmp/chain.pem'2) На хосте СУБД перезапустить СУБД, выполнив команду sudo systemctl restart postgresql (или sudo systemctl restart jatoba‑4 если используется СУБД Jatoba).
[1] Путь к файлу может отличаться в зависимости от версии PostgreSQL или Jatoba.
[2] Файл сертификата сервера СУБД может быть скачан из пользовательского интерфейса Центра сертификации Aladdin eCA. Например, в карточке локального субъекта сервера СУБД.
[3] Файл закрытого ключа сервера СУБД может быть получен из контейнера закрытого ключа сервера СУБД путём выполнения команды openssl pkcs12 -in container.p12 -out key.key -nocerts -nodes, где container.p12 – путь к контейнеру закрытого ключа сервера СУБД, а «key.key» - путь к файлу для сохранения закрытого ключа.
[4] Файл цепочки сертификатов издателя сертификата СУБД может быть скачан в карточке ЦС, выпустившего сертификат сервера СУБД.
Настройка на хосте Центра регистрации Aladdin eRA
1) На хосте Центра регистрации Aladdin eRA отредактировать конфигурационный файл /opt/aecaRа/scripts/config.sh, указав в нём в параметре конфигурации БД use_tls значение true, а в параметре root_cert_path абсолютный путь к файлу сертификата корневого издателя из цепочки сертификатов сервера СУБД[1].
При этом указанный выше файл сертификата корневого издателя из цепочки сертификатов сервера СУБД должен иметь метку доступа «600», установить которую можно с помощью команды sudo chmod 600 путь_к_файлу. Владельцем файла сертификата корневого издателя из цепочки сертификатов сервера СУБД необходимо назначить пользователя «aeca», выполнив команду sudo chown aeca:aeca путь_к_файлу. Указанный файл должен располагаться в каталоге, к которому имеет доступ пользователь aeca (например, /tmp). В случае использования РЕД ОС на хосте Центра регистрации Aladdin eRA файл сертификата корневого издателя из цепочки сертификатов сервера СУБД должен располагаться в каталоге /opt/aecaRа (или в его подкаталогах). Кроме того, в случае использования РЕД ОС на хосте Центра регистрации Aladdin eRA необходимо дополнительно выполнить команду restorecon ‑Rv “путь к файлу сертификата корневого издателя из цепочки сертификатов сервера СУБД“.
2) На хосте Центра регистрации Aladdin eRA применить изменения конфигурационного файла путём запуска команды sudo bash /opt/aecaRa/scripts/install.sh и дальнейшего выбора действия «[Update]».
По завершению выполнения указанной команды дальнейший обмен данными Центра Регистрации Aladdin eRA c СУБД будет осуществляться только по протоколу TLS. Если в СУБД, к которой выполняется подключение, отключён TLS, то Центр Регистрации Aladdin eRA не будет выполнять обмен данными с такой СУБД. При этом Центр Регистрации Aladdin eRA сможет установить соединение с СУБД только в случае, если её сертификат издан издателем, путь к сертификату которого указан в конфигурационном файле Центра Регистрации Aladdin eRA и только в случае, если имя хоста сервера СУБД соответствует указанному в сертификате.
[1] Если сертификат сервера СУБД выпущен подчинённым ЦС, необходимо указать путь до сертификата корневого ЦС.