Компонент Identity Server отвечает за авторизацию в платформе. Одна из его задач - это генерация токенов и их подпись с помощью сертификата (подписанный токен это bearer token, который используется для авторизации на компонентах платформы).
В поставке по умолчанию уже есть стандартный сертификат, который необходимо заменить на свой в целях безопасности.
Примечание |
---|
Если оставить сертификат из поставки, то к компонентам платформы может получить доступ любой желающий, ему достаточно лишь иметь у себя дистрибутив платформы с таким же дефолтным сертификатом. |
Информация |
---|
Если у Вас уже имеется готовый сертификат, созданный для localhost (т.к. он будет использоваться внутри контейнера), можно переходить к пункту 2. |
- Создание самоподписанного сертификата.
Скопировать конфигурационный файл openssl:
Блок кода language actionscript3 theme RDark sudo cp /etc/ssl/openssl.cnf ssl-selfsigned.cnf
Открыть новый файл на редактирование, например, в редакторе nano:
Блок кода language actionscript3 theme RDark sudo nano ssl-selfsigned.cnf
В секции [ v3_ca ] необходимо добавить строку:
Блок кода language actionscript3 theme RDark [ v3_ca ] #... some configs ... subjectAltName=DNS:localhost
Проверить, что в секции [ req ] есть следующая строка:
Блок кода language actionscript3 theme RDark [ req ] #... some configs ... x509_extensions = v3_ca
Далее выполнить команду для создания сертификата:
Блок кода language actionscript3 theme RDark 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
При выполнении следующей команды необходимо будет задать и подтвердить пароль для сертификата (данный пароль потребуется далее):
Блок кода language actionscript3 theme RDark sudo openssl pkcs12 -export -out certificate.pfx -inkey ssl-selfsigned.key -in ssl-selfsigned.crt -name "Localhost Selfsigned"
Установка нового сертификата.
Скопировать файл сертификата certificate.pfx в папку /docker-volume/identity-server/certificate.
Предупреждение В случае отсутствия папки - необходимо её создать.
...
Создать в папке /docker-volume/identity-server/certificate файл pass.txt, содержащий пароль к сертификату certificate.pfx
...
.
Блок кода language actionscript3 theme RDark 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
...