После запуска сценария ciphertool.bat или ciphertool.sh в каталоге bin сервера идентификации WSO2 при следующем запуске сервера вам будет предложено указать пароль хранилища ключей и секретного ключа, используемый для настройте безопасное хранилище WSO2. Пример:
C:\Program Files\WSO2\Identity Server\5.7.0\bin>wso2server.bat --start
JAVA_HOME environment variable is set to C:\Program Files\Java\jdk1.8.0_181
CARBON_HOME environment variable is set to C:\PROGRA~1\WSO2\IDENTI~1\570D0D~1.0\bin\..
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[Enter KeyStore and Private Key Password :]
У меня есть экземпляр сервера идентификации WSO2, который работает в контейнере Docker. Мои пароли зашифрованы, поэтому я должен предоставить пароль хранилища ключей / секретного ключа при запуске.
Это создает проблему:
Мне нужно запустить свой док-контейнер с флагом -it
, чтобы создать активную оболочку bash в контейнере, которая позволяет мне вводить пароль хранилища ключей и личного ключа. Моя команда запуска докера выглядит так docker run -p 443:443 -it wso2-test .
. Если я не включу флаг -it
, WSO2 IS никогда не будет запрашивать пароль, и пароли не будут разрешены, что приведет к сбою.
Я не хочу использовать флаг -it
, потому что он заставляет пользователя вводить данные, и я бы хотел, чтобы контейнеры запускались независимо.
Чтобы все было как можно более автоматизировано, я хочу предоставить хранилище ключей и пароль закрытого ключа сразу при запуске сценария wso2server.sh
(который является точкой входа в мой Dockerfile), а не при отображении приглашения , Это возможно?
В идеале решение должно иметь точку входа в Dockerfile, которая выглядит примерно так:
ENTRYPOINT ["wso2server.sh", "run", "KEYSTORE_PASSWORD"]