Я настроил сервер wildfly 8.0.0 с JDK 1.8 u162 для предоставления поддержки HTTPS моему приложению путем создания самозаверяющего сертификата. Для успешной настройки я указал пароль хранилища ключей в виде открытого текста в файле standalone.xml, и он работает правильно.
Теперь я хочу сделать пароль хранилища ключей в зашифрованном режиме вместо простого текста. Для этого я использовал скрипт VAULT и выполнил все необходимые шаги для генерации файла и тега VAULT.dat. После указания обязательных настроек в файле standalone.xml, когда я запустил свой дикий сервер, он дал мне java.io.IOException: недопустимое исключение формата хранилища ключей, и из-за этого система не была развернута.
Я выполнил следующие шаги:
1) Для создания файла хранилища ключей я использовал следующую команду и следовал инструкциям.
keytool -genkey -keyalg RSA -alias vault -keystore osp_keystore.jks -validity 365 -keysize 2048
2) Я открыл окно VAULT (vault.bat), чтобы зашифровать пароль хранилища ключей. Я выполнил все необходимые шаги, которые дали мне следующую информацию для настройки в файле standlone.xml.
<vault>
<vault-option name="KEYSTORE_URL" value="D:\osp\standalone\configuration\osp_keystore.jks"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-ZCA9zDtIIr7BbsQlgnChk"/>
<vault-option name="KEYSTORE_ALIAS" value="ospvault"/>
<vault-option name="SALT" value="ASDF1234"/>
<vault-option name="ITERATION_COUNT" value="50"/>
<vault-option name="ENC_FILE_DIR" value="D:\osp\standalone\configuration\vault\"/>
</vault>
Vault Block:keystore
Attribute Name:password
VAULT::keystore::password::1
3) Я настроил файл standalone.xml со следующими тегами.
a) Указанный выше тег между тегами </extensions>
и <management>
.
б) Под тегом <security-realm name="ApplicationRealm">
добавлен следующий тег.
<server-identities>
ssl><keystore path=" osp_keystore.jks" relative-to="jboss.server.config.dir" keystore-password="${VAULT::keystore::password::1}" /></ssl>
</server-identities>
в) Под тегом <subsystem xmlns="urn:jboss:domain:undertow:1.0">
свяжите ApplicationRealm с HTTPS.
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm"/>