我已将JDK 1.8 u162配置为wildfly 8.0.0服务器,以通过创建自签名证书为应用程序提供HTTPS支持。为了成功配置它,我在standalone.xml文件中以明文形式指定了密钥库密码,并且它可以正常工作。
现在,我想以加密模式而不是明文形式设置密钥库密码。为此,我使用了VAULT脚本并执行了所有必需的步骤来生成VAULT.dat文件和标签。在standalone.xml文件中指定了必需的设置后,当我启动我的Wild-fly服务器时,它给了我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>
标签之间指定上述标签。
b)在<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>
c)在<subsystem xmlns="urn:jboss:domain:undertow:1.0">
标签下,将ApplicationRealm与HTTPS绑定。
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm"/>
答案 0 :(得分:0)
服务器标识的密钥库和库的密钥库是两个不同的密钥库。 生成密钥库的示例:
keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault123 -keypass vault123 -validity 365 -keystore ${jboss-config}\vault\vault.keystore
,然后在standalone.xml中:
<vault-option name="KEYSTORE_URL" value="${jboss-config}/vault/vault.keystore"/>