Установка сертификата удостоверяющего центра на стороне сервера БД MSSQL или PostgreSQL

Установка сертификата удостоверяющего центра на стороне сервера БД MSSQL

  1. В среде Windows (БД MSSQL) добавьте сертификат удостоверяющего центра (УЦ) в "Сертификаты» -«Локальный компьютер» - «Доверенные корневые центры сертификации"
  2. На сервере MSSQL нажмите дважды на сертификате УЦ, и в открывшемся окне "Сертификат" нажмите кнопку [Установить].
    Изображение
  3. В "Мастер импорта сертификатов" выберите расположение хранилища "Локальный компьютер", затем нажмите кнопку [Далее].
    Изображение
  4. В следующем окне выберите "Поместить все сертификаты в следующее хранилище" и нажмите кнопку [Обзор]. Затем в окне "Выбор хранилища сертификата" выберите "Доверенные корневые центры сертификации" и нажмите кнопку [ОК].
    Изображение
  5. В следующем окне нажмите кнопку [Далее].
    Изображение
  6. Нажмите кнопку [Готово].
    Изображение
    После успешной установки сертификата должно появиться сообщение "Импорт успешно выполнен".

    Установка сертификата удостоверяющего центра на стороне сервера БД 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