第 15 章 使用密钥存储保护密码
您可以使用密钥存储来加密用于 Business Central 和 KIE 服务器之间的通信的密码。您应该加密控制器和 KIE 服务器密码。如果 Business Central 和 KIE 服务器部署到不同的应用服务器,则两个应用服务器将使用密钥存储。
为您的密钥存储使用 Java CryptographyExtension KeyStore (JCEKS),因为它支持对称密钥。使用 KeyTool ( JDK 安装的一部分)来创建新的 JCEKS。
如果没有使用 JCEKS 配置 KIE 服务器,KIE 服务器密码会以纯文本形式存储在系统属性中。
先决条件
- KIE 服务器安装在红帽 JBoss EAP 中。
- 安装了 Java 8 或更高版本。
流程
- 在 Red Hat JBoss EAP 主目录中,输入以下命令创建带有 - kie-server角色的 KIE Server 用户并指定密码。在以下示例中,将 <- ;USERNAME>- ; 和 <PASSWORD> 替换为您选择的用户名和密码。- $<EAP_HOME>./bin/jboss-cli.sh --commands="embed-server --std-out=echo,/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity(identity=<USERNAME>),/subsystem=elytron/filesystem-realm=ApplicationRealm:set-password(identity=<USERNAME>, clear={password='<PASSWORD>'}),/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity-attribute(identity=<USERNAME>, name=role, value=['kie-server'])"- $<EAP_HOME>./bin/jboss-cli.sh --commands="embed-server --std-out=echo,/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity(identity=<USERNAME>),/subsystem=elytron/filesystem-realm=ApplicationRealm:set-password(identity=<USERNAME>, clear={password='<PASSWORD>'}),/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity-attribute(identity=<USERNAME>, name=role, value=['kie-server'])"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要使用 KeyTool 创建 JCEKS,请在 Java 8 主目录中输入以下命令: - $<JAVA_HOME>/bin/keytool -importpassword -keystore <KEYSTORE_PATH> -keypass <ALIAS_KEY_PASSWORD> -alias <PASSWORD_ALIAS> -storepass <KEYSTORE_PASSWORD> -storetype JCEKS - $<JAVA_HOME>/bin/keytool -importpassword -keystore <KEYSTORE_PATH> -keypass <ALIAS_KEY_PASSWORD> -alias <PASSWORD_ALIAS> -storepass <KEYSTORE_PASSWORD> -storetype JCEKS- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在本例中,替换以下变量: - 
								<KEYSTORE_PATH> :密钥存储将存储的路径
- 
								<KEYSTORE_PASSWORD> :密钥存储密码
- 
								<ALIAS_KEY_PASSWORD> :用于访问使用别名存储的值的密码
- 
								<PASSWORD_ALIAS> :进程条目的别名
 
- 
								
- 出现提示时,输入您创建的 KIE Server 用户的密码。
- 在 - EAP_HOME/standalone/configuration/standalone-full.xml文件中设置以下系统属性,并替换下表中列出的占位符:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Expand - 表 15.1. 用于加载 KIE 服务器 JCEKS 的系统属性 - 系统属性 - 占位符 - 描述 - kie.keystore.keyStoreURL- <KEYSTORE_URL>- 要使用的 JCEKS 的 URL,例如 - file:///home/kie/keystores/keystore.jceks- kie.keystore.keyStorePwd- <KEYSTORE_PWD>- JCEKS 的密码 - kie.keystore.key.server.alias- <KEY_SERVER_ALIAS>- 存储密码的 REST 服务的密钥别名 - kie.keystore.key.server.pwd- <KEY_SERVER_PWD>- 带有存储密码的 REST 服务别名的密码 - kie.keystore.key.ctrl.alias- <KEY_CONTROL_ALIAS>- 存储密码的默认 REST Process Automation Controller 的密钥别名 - kie.keystore.key.ctrl.pwd- <KEY_CONTROL_PWD>- 带有存储密码的默认 REST Process Automation Controller 的别名密码 
- 启动 KIE 服务器以验证配置。