3.2. 密码 Vault
配置 JBoss EAP 和相关应用需要潜在的敏感信息,如用户名和密码。密码库功能不以纯文本形式存储在配置文件中,可用于屏蔽密码信息并将其存储在加密密钥存储中。密码存储之后,可以将引用包含在管理 CLI 命令或部署到 JBoss EAP 的应用中。
密码库使用 Java 密钥存储作为其存储机制。密码库由两个部分组成:存储和密钥存储。Java 密钥存储用于存储密钥,用于加密或解密 Vault 存储中的敏感字符串。
由 Java 运行环境(JRE)提供的 keytool 实用程序可用于执行此步骤。找到 文件的路径,该文件在 Red Hat Enterprise Linux 上是 /usr/bin/keytool
。
JCEKS 密钥存储实施因 Java 供应商而异,因此必须使用来自所用 JDK 的相同供应商的 keytool 实用程序来生成密钥存储。在不同供应商的 JDK 在运行 JDK 的 JBoss EAP 7 实例中使用密钥工具生成的密钥存储,将导致以下例外: java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector
3.2.1. 设置密码 Vault 复制链接链接已复制到粘贴板!
按照以下步骤设置和使用密码库。
创建用于存储密钥存储和其他加密信息的目录。
此流程的其余部分假定 目录为
EAP_HOME/vault/
。由于此目录将包含敏感信息,因此应只能供有限用户访问。至少,运行 JBoss EAP 的用户帐户需要读写访问权限。确定要与 keytool 实用程序一起使用的参数。
决定以下参数的值:
- Alias
- 别名是密码库或密钥存储中存储的其他数据的唯一标识符。别名不区分大小写。
- storetype
-
storetype 指定密钥存储类型。建议值
jceks
。 - keyalg
- 用于加密的算法。使用 JRE 和操作系统的文档,了解其他哪些选项可用。
- keysize
- 加密密钥的大小会影响通过暴力破解的难度。有关适当值的详情,请查看使用 keytool 实用程序分发的文档。
- storepass
- storepass 的值是用于对密钥存储进行身份验证的密码,以便能够读取该密钥。密码长度必须至少为 6 个字符,必须在访问密钥存储时提供。如果省略此参数,则按键tool 实用程序将提示其在命令执行后输入。
- keypass
- keypass 的值是用于访问特定密钥的密码,并且必须与 storepass 参数的值匹配。
- 有效期
- 有效期值是密钥有效的期间(按天数计)。
- keystore
keystore 的值是要在其中存储密钥存储的值的文件路径和文件名。密钥存储文件在数据首次添加到其中时创建。确保使用正确的文件路径分隔符:/(正斜杠)用于红帽企业 Linux 和类似操作系统,\(反斜杠)用于 Windows Server。
keytool
实用程序还有许多其他选项。如需了解更多详细信息,请参阅 JRE 或操作系统的文档。
运行 keytool 命令,确保
keypass
和storepass
包含相同的值。keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault22 -keypass vault22 -validity 730 -keystore EAP_HOME/vault/vault.keystore
$ keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault22 -keypass vault22 -validity 730 -keystore EAP_HOME/vault/vault.keystore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这将生成已在
EAP_HOME/vault/vault.keystore
文件中创建的密钥存储。它存储带有别名库的单一密钥,它将用于存储 JBoss EAP 的加密字符串(如密码)。