2.3. 使用加密表达式来保护 KeyStore/credential-store
您可以使用加密表达式来保护 KeyStore。
先决条件
您已创建了加密的表达式。
有关创建加密表达式的详情,请参考 在 Elytron 中创建一个加密的表达式。
流程
创建一个 KeyStoreCredentialStore,它使用加密表达式作为
明文:语法
/subsystem=elytron/credential-store=<name_of_credential_store>:add(path=<path_to_the_credential_store>, create=true, modifiable=true, credential-reference={clear-text=<encrypted_expression>})/subsystem=elytron/credential-store=<name_of_credential_store>:add(path=<path_to_the_credential_store>, create=true, modifiable=true, credential-reference={clear-text=<encrypted_expression>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
/subsystem=elytron/credential-store=secureKeyStoreCredentialStore:add(path="secureKeyStoreCredentialStore.jceks", relative-to=jboss.server.data.dir, create=true, modifiable=true, credential-reference={clear-text=${ENC::exampleResolver:RUxZAUMQgtpG7oFlHR2j1Gkn3GKIHff+HR8GcMX1QXHvx2uGurI=}}) {"outcome" => "success"}/subsystem=elytron/credential-store=secureKeyStoreCredentialStore:add(path="secureKeyStoreCredentialStore.jceks", relative-to=jboss.server.data.dir, create=true, modifiable=true, credential-reference={clear-text=${ENC::exampleResolver:RUxZAUMQgtpG7oFlHR2j1Gkn3GKIHff+HR8GcMX1QXHvx2uGurI=}}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用加密表达式保护 KeyStoreCredentialStore 后,您可以在 KeyStoreCredentialStore 中生成一个 SecretKeyCredential,并使用 secret 密钥来创建另一个加密表达式。然后,您可以在管理模型(服务器配置文件)中使用这个新加密的表达式而不是敏感字符串。为了安全起见,您可以创建一个完整的凭证存储链。此链使得猜测敏感字符串变得更加困难,因为字符串会受到如下方式的保护:
- 第一个加密表达式为 KeyStoreCredentialStore 的安全。
- 另一个加密表达式保护敏感字符串。
- 要解码敏感字符串,您需要解密加密的表达式。
随着加密表达式的链变得较长,解密敏感字符串会变得比较困难。