/
Создание и замена сертификата Identity Server

Создание и замена сертификата Identity Server

Компонент Identity Server отвечает за авторизацию в платформе. Одна из его задач - это генерация токенов и их подпись с помощью сертификата (подписанный токен это bearer token, который используется для авторизации на компонентах платформы).

В поставке по умолчанию уже есть стандартный сертификат, который необходимо заменить на свой в целях безопасности.

Если оставить сертификат из поставки, то к компонентам платформы может получить доступ любой желающий, ему достаточно лишь иметь у себя дистрибутив платформы с таким же дефолтным сертификатом.
Используя свой стенд с платформой, атакующий генерирует токен и подписывает его дефолтным сертификатом. Далее авторизуется с помощью подписанного токена на любой платформе, где не заменили сертификат из поставки в Identity Server.

Если у Вас уже имеется готовый сертификат, созданный для localhost (т.к. он будет использоваться внутри контейнера), можно переходить к пункту 2.

  1. Создание самоподписанного сертификата.
    • Скопировать конфигурационный файл openssl:

      sudo cp /etc/ssl/openssl.cnf ssl-selfsigned.cnf
    • Открыть новый файл на редактирование, например, в редакторе nano:

      sudo nano ssl-selfsigned.cnf
    • В секции [ v3_ca ] необходимо добавить строку:

      [ v3_ca ]
      #... some configs ...
      subjectAltName=DNS:localhost
    • Проверить, что в секции [ req ] есть следующая строка:

      [ req ]
      #... some configs ...
      x509_extensions = v3_ca
    • Далее выполнить команду для создания сертификата:

      sudo openssl req -x509 -newkey rsa:4096 -keyout ssl-selfsigned.key -out ssl-selfsigned.crt -days 3650 -nodes -subj "/CN=localhost" -config ssl-selfsigned.cnf
    • При выполнении следующей команды необходимо будет задать и подтвердить пароль для сертификата (данный пароль потребуется далее):

      sudo openssl pkcs12 -export -out certificate.pfx -inkey ssl-selfsigned.key -in ssl-selfsigned.crt -name "Localhost Selfsigned"
  2. Установка нового сертификата.

    • Скопировать файл сертификата certificate.pfx в папку ​/docker-volume/identity-server/certificate. 

      В случае отсутствия папки - необходимо её создать.

    • Создать в папке /docker-volume/identity-server/certificate файл pass.txt, содержащий пароль к сертификату certificate.pfx.

      echo -n "pass" > /docker-volume/identity-server/certificate/pass.txt

      В файле pass.txt не должно быть перевода строки в конце, что по умолчанию происходит в редакторах Nano, Vim и даже через команду echo. Поэтому нужно использовать именно команду echo с параметром -n (do not print the trailing newline). Также полезно прочитать информацию по данной ссылке: https://askubuntu.com/questions/13317/how-to-stop-gedit-gvim-vim-nano-from-adding-end-of-file-newline-char

    • Если платформа уже запущена, необходимо перезапустить её с помощью команды ./run.sh --restart

      Если ViQube установлен отдельно, то перезапустить платформу по инструкции Установка компонентов на разные серверы, при этом необходимо перезапустить платформу на обоих серверах.

Related content

Зaпуск платформы
Зaпуск платформы
Read with this
Создание и замена сертификата Identity Server
Создание и замена сертификата Identity Server
More like this
Установка платформы
Установка платформы
Read with this
Создание и замена сертификата Identity Server
Создание и замена сертификата Identity Server
More like this
Запуск платформы на кастомной версии компонента
Запуск платформы на кастомной версии компонента
Read with this
Создание и замена сертификата Identity Server
Создание и замена сертификата Identity Server
More like this