Установка сертификата удостоверяющего центра на стороне сервера БД MSSQL или PostgreSQL
Установка сертификата удостоверяющего центра на стороне сервера БД MSSQL
- В среде Windows (БД MSSQL) добавьте сертификат удостоверяющего центра (УЦ) в "Сертификаты» -«Локальный компьютер» - «Доверенные корневые центры сертификации"
- На сервере MSSQL нажмите дважды на сертификате УЦ, и в открывшемся окне "Сертификат" нажмите кнопку [Установить].
- В "Мастер импорта сертификатов" выберите расположение хранилища "Локальный компьютер", затем нажмите кнопку [Далее].
- В следующем окне выберите "Поместить все сертификаты в следующее хранилище" и нажмите кнопку [Обзор]. Затем в окне "Выбор хранилища сертификата" выберите "Доверенные корневые центры сертификации" и нажмите кнопку [ОК].
- В следующем окне нажмите кнопку [Далее].
- Нажмите кнопку [Готово].
После успешной установки сертификата должно появиться сообщение "Импорт успешно выполнен".Установка сертификата удостоверяющего центра на стороне сервера БД PostgreSQL вне Docker
Сертификат должен быть в формате PEM и иметь расширение ".crt" — если расширение вашего сертификата ".pem", то достаточно просто поменять на ".crt"
- Скопируйте сертификат УЦ в каталог "/etc/pki/ca-trust/source/anchors".
- Выполните команду
update-ca-trust
- Проверьте наличие сертификата УЦ в доверенных. Вместо "DSR" укажите свое имя "CN" сертификата.
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /usr/share/ca-certificates/ca-bundle.crt | grep DSR
Проверьте доступность с сервера PostgreSQL сервиса UploadService. Не должно быть сообщений вида:
TLSv1.2 (OUT), TLS alert, unknown CA (560):
SSL certificate problem: self signed certificate
curl -vs https://[адрес_UploadService]
Установка сертификата удостоверяющего центра на стороне сервера БД PostgreSQL СУБД-КС Docker ниже версии 14.2
Сертификат должен быть в формате PEM и иметь расширение ".crt" — если расширение вашего сертификата ".pem", то достаточно просто поменять на ".crt"
Выясните имя контейнера PG, в данном случае на pgsqlks-13.1_5432 (далее везде по тексту имя измените на нужное).
docker ps
Скачайте и распакуйте необходимый набор пакетов openssl_pgsqlks.tar.gz.
wget -O /opt/openssl_pgsqlks.tar.gz https://keysystems.ru/files/web/Scripts/PG/openssl_pgsqlks.tar.gz --no-check-certificate
tar -C /opt/ -xvf /opt/openssl_pgsqlks.tar.gz
cp -r /opt/openssl_pgsqlks /var/lib/pgsqlks-13.1_5432/backups/openssl_pgsqlks
Скопируйте сертификат УЦ Keysystems_CA.crt (укажите свой) в каталог /usr/share/ca-certificates.
docker cp /opt/Keysystems_CA.crt pgsqlks-13.1_5432:/usr/share/ca-certificates
Вся остальная работа будет проходить внутри контейнера PG. Запустите bash внутри контейнера и установите все пакеты "openssl_pgsqlks" внутри контейнера.
docker exec -ti pgsqlks-13.1_5432 /bin/bash
dpkg -i /var/lib/pgsqlks-13.1_5432/backups/openssl_pgsqlks/*
Добавьте сертификат в файл конфигурации и обновите корневые сертификаты.
echo -e Keysystems_CA.crt >> /etc/ca-certificates.conf
update-ca-certificates
Проверьте состояние сертификата, если он в списке наверху, и перед именем сертификата стоит знак "!", то формат сертификата неверный.
cat /etc/ca-certificates.conf
Или проверьте наличие нашего CA сертификата среди доверенных следующим образом:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt
Проверьте доступность с контейнера PG сервиса UploadService. Не должно быть сообщений вида:
TLSv1.2 (OUT), TLS alert, unknown CA (560):
SSL certificate problem: self signed certificate
curl -vs https://[адрес_UploadService]
Выйдите из контейнера PG:
exit
Если вы настраиваете инфраструктуру, в которой используются сертификаты по умолчанию, тогда аналогом Keysystems_CA.crt будет сертификат из каталога веб-сервера /opt/wsks-3.1.24_443/ssl/wsks-19,08_demo.crt (версии и порты могут отличаться).
Установка сертификата удостоверяющего центра на стороне сервера БД PostgreSQL СУБД-КС Docker версии 14.2 и выше
Выясните имя контейнера PG, в данном случае это pgsqlks-14.2_5434 (далее по тексту выполните замену на нужное).
docker ps
Скопируйте сертификат УЦ "ca.crt" (укажите свой) в /usr/share/ca-certificates.
docker cp /opt/ca.crt pgsqlks-14.2_5434:/usr/share/ca-certificates
Добавьте сертификат в файл конфигурации и обновите корневые сертификаты.
echo -e ca.crt >> /etc/ca-certificates.conf
update-ca-certificates
Проверьте состояние сертификата, если он в списке наверху, и перед именем сертификата стоит знак "!", то формат сертификата неверный.
cat /etc/ca-certificates.conf
Или проверьте наличие нашего CA сертификата среди доверенных следующим образом:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt
Проверьте доступность с контейнера PG сервиса UploadService. Не должно быть сообщений вида:
TLSv1.2 (OUT), TLS alert, unknown CA (560):
SSL certificate problem: self signed certificate
curl -vs https://[адрес_UploadService]
Выйдите из контейнера PG:
exit