Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

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

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

Примечание

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


Информация

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


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

      Блок кода
      languageactionscript3
      themeRDark
      sudo cp /etc/ssl/openssl.cnf ssl-selfsigned.cnf


    • Открыть новый файл на редактирование, например, в редакторе nano:

      Блок кода
      languageactionscript3
      themeRDark
      sudo nano ssl-selfsigned.cnf


    • В секции [ v3_ca ] необходимо добавить строку:

      Блок кода
      languageactionscript3
      themeRDark
      [ v3_ca ]
      #... some configs ...
      subjectAltName=DNS:localhost


    • Проверить, что в секции [ req ] есть следующая строка:

      Блок кода
      languageactionscript3
      themeRDark
      [ req ]
      #... some configs ...
      x509_extensions = v3_ca


    • Далее выполнить команду для создания сертификата:


      Блок кода
      languageactionscript3
      themeRDark
      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


    • При выполнении следующей команды необходимо будет задать и подтвердить пароль для сертификата (данный пароль потребуется далее):

      Блок кода
      languageactionscript3
      themeRDark
      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 и скопировать его также в папку .

      Блок кода
      languageactionscript3
      themeRDark
      echo -n "pass" > /docker-volume/identity-server/certificate/pass.txt


      Предупреждение

      Редактор Nano и Vim при сохранении файла pass.txt могут добавить переход на другую строку, что приведет к поломке контейнера Identity-server. Увидеть этот переход и убрать его можно, открыв файл с номерами строк вот так: nano -l pass.txt.
      Также опытным путем установлено, что редактор ne перевод строки не добавляет.
      В файле 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


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

      Предупреждение

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