securityUtility 命令
securityUtility 命令支持纯文本加密、创建 SSL 证书和为 Liberty 创建 LTPA 密钥。
Open Liberty Web 站点上提供了 V 21.0.0.11 和更高版本中 securityUtility 命令的文档。
语法
命令语法如下所示:
securityUtility task [options]
其中 options 随 task 的值不同而不同。
不同的操作系统和命令行环境以不同方式处理某些字符。 在许多环境中,您可以重新定义哪些字符是特殊字符以及它们的行为方式。
D:\Liberty\images\855\Liberty855\wlp\bin>securityUtility encode "a^!"对于某些操作系统,可能需要对传递到该工具的自变量使用单引号。
如果使用终端仿真器,请确保会话配置为使用与服务器相同的代码页。
如果您遇到意外结果,请参阅操作系统,命令 shell 和终端仿真器文档以了解特殊字符和代码页。
参数
securityUtility 命令:- 帮助
- 显示所指定任务的帮助信息。
generateAESKey
生成用于密码加密的密钥 Base64-encodedAES-256。 生成的密钥可通过在Liberty配置文件中定义该 wlp.aes.encryption.key 变量来使用。
选项是:
- --createConfigFile=name
- 创建一个XML配置文件,其中包含变量 wlp.aes.encryption.key 中生成的AES密钥。 如果未提供此选项,则将密钥打印到控制台。
- --key=password
- 使用Liberty 的内部密钥派生函数,从提供的密码短语中派生出密钥 Base64-encodedAES-256。 如果未指定此选项,则生成一个随机 AES-256 密钥。
- encode
- 使用 Base64 对所提供的文本进行编码。 如果未指定任何选项,那么命令会进入交互方式。 否则,会对提供的文本进行编码。 包含空格的文本必须用引号括起来。选项是:
- --encoding=encoding_type
指定如何对密码进行编码。 支持的编码是
xor、aes和hash。 缺省值为xor。该
aes类型使用 AES-256 加密。在 25.0.0.1 及更早版本中,
aes类型使用 AES-128 加密。您可以使用 "
hash编码选项对基本用户注册和 "quickStartSecurity元素的密码进行编码。启用FIPS 140-3时,和
hashaes选项均采用增强算法对字符串进行加密和编码。 在算法增强前使用这些选项加密或编码的字符串,可能会在 FIPS 140-3 环境中失效。- --key=encryption_key
- 指定在使用 AES 加密进行编码时要使用的密钥。 该字符串经过哈希处理,生成用于加密和解密密码的AES加密密钥。 可以通过定义
wlp.password.encryption.key变量(其值为密钥)来向服务器提供密钥。 如果未提供此选项,那么将使用缺省密钥。另请参阅有关 设置变量 for
wlp.password.encryption.key的信息。 --base64Key=base64_key
- 指定一个 AES-256Base64-encoded 密钥,用于通过AES加密对密码进行编码。 通过定义该 wlp.aes.encryption.key 变量,即可将密钥提供给服务器。 此选项不能与 或
--aesConfigFile--key选项同时使用。 --aesConfigFile=file
- 指定一个定义 或 wlp.aes.encryption.key wlp.password.encryption.key 变量的 XML 或 Java 属性文件。 这两个变量不能同时出现在同一个文件中。 此选项不能与 或
--base64Key--key选项同时使用。 - --listCustom
- 以 JavaScript 对象表示法 (JSON) 格式显示定制密码加密的信息。 此信息由下列各项组成:
- name:定制密码加密算法的名称。
- featurename:功能部件名称。
- description:定制密码加密的描述。
有关自定义密码加密的更多信息,请参阅 《开发提供 customPasswordEncryption 程序 》。
- --notrim
- 指定是否从指定文本开头和结尾移除了空格字符。 如果指定了此选项,那么所提供文本将按原样编码。 如果未指定此选项,那么指定文本开头和结尾的空格字符将被移除。
- text
- 要对其进行编码的文本。
- createSSLCertificate
- 创建包含用于服务器或客户机配置的 SSL 证书的缺省密钥库。
- 密钥库详细信息:
- 位置:在服务器或客户机目录的 resource/security/key.p12 文件中。
- 证书详细信息:
- 类型:自签名证书。
选项是:
- --server=name
- 指定为其创建密钥库和证书的 Liberty 服务器的名称。 如果指定了
--client选项,那么不能使用此选项。 - --client=name
- 指定为其创建密钥库和证书的 Liberty 客户机的名称。 如果指定了
--server选项,那么不能使用此选项。 - --keyType=keystore type
- 指定要生成的密钥库类型。 要生成 JKS 密钥库,请
--keyType指定选项,其值为JKS。 缺省情况下,系统将生成 PKCS12 密钥库。 然而,若要明确指定生成密钥 PKCS12 库,请--keyType将选项设置为PKCS12。与 JKS 密钥库相比,PKCS12 密钥库有许多优点。 PKCS12 密钥库可扩展性更高,支持更强的密码算法,并且被广泛采用。 PKCS12 格式通常使用认证中心发出证书时提供的格式。
- --keySize=size
- 指定证书密钥位大小。 缺省值为
2048。 - --password=password
- 指定要用在密钥库中的密码,长度必须至少为六个字符。 此选项为必需。
- --passwordEncoding=password_encoding_type
- 指定如何对密钥库密码进行编码。 受支持的编码值为
xor或aes。 如果未提供此选项,那么将使用缺省值xor。 - --passwordKey=password_encryption_key
- 指定使用 AES 加密对密钥库密码进行编码的密钥。 对此字符串进行散列,以生成一个用来对密码进行加密和解密的加密密钥。 可以通过定义 wlp.password.encryption.key 变量(其值为密钥)来向服务器提供密钥。 如果未提供此选项,那么将使用缺省密钥。
- --validity=days
- 指定证书的有效天数,必须等于或大于 365。 如果未提供此选项,那么将使用缺省值 365。
- --subject=DN
- 指定证书主体集和签署者的专有名称 (DN)。 如果未提供此选项,那么将使用缺省值
CN=<hostname>,OU=<server or client name>,O=ibm,C=us。 使用 Java 方法检索CN值以获取机器的本地主机名。 如果无法解析主机名,那么会返回 IP 地址。 - --sigAlg
- 指定用于签署自签名证书的签名算法。 受支持签名算法取决于底层 JRE 支持的算法。 更强签名算法可能要求 JRE 在适当位置具有不受限制的策略文件。
- --extInfo
- 指定它在创建缺省证书时所使用的任何 X.509 证书扩展信息。 缺省情况下,主体集备用名称扩展会与服务器的主机名一起添加至证书。 如果使用
--extInfo选项,那么相应值会直接传递至 keytool 命令。 在 keytool 命令中使用 标志--ext的语法。 --passwordBase64Key=base64_key
- 指定一个 AES-256Base64-encoded 密钥,用于在指定选项
--passwordEncoding=aes时加密密钥库密码。 此选项不能与 或--aesConfigFile--passwordKey选项同时使用。 --aesConfigFile=file
- 指定一个XML或Java属性文件,该文件定义用于密码加密的AES密钥。 该文件必须包含 或 wlp.aes.encryption.key wlp.password.encryption.key 变量。 此选项不能与 或
--passwordBase64Key--passwordKey选项同时使用。
- createLTPAKeys
创建一组 LTPA 密钥,供服务器使用,或与多个服务器共享。 如果没有指定服务器或文件,则会在当前工作目录下创建
ltpa.keys文件。选项是:
- --file=name
- 写入 LTPA 密钥的文件。 如果指定了
--server选项,则不能使用该选项。 - --passwordEncoding=password_encoding_type
- 指定如何在 server.xml 文件中对 LTPA 密钥密码进行编码。 支持的编码类型有
xor和aes。 如果未指定该选项,则使用xor的默认编码类型。您可以使用
securityUtility encode --listCustom命令查看是否支持其他自定义加密。 - --passwordKey=password_encryption_key
- 指定使用 AES 加密对 LTPA 密钥密码进行编码的密钥。 对此字符串进行散列,以生成一个用来对密码进行加密和解密的加密密钥。 您可以通过将
wlp.password.encryption.key变量定义为键值来提供键值。 如果未指定该选项,则使用默认密钥。 - --server=name
- 指定用于创建LTPA密钥的Liberty服务器的名称。 如果指定了
--file选项,则不能使用该选项。 --passwordBase64Key=base64_key
- 指定一个 AES-256Base64-encoded 密钥,用于在使用该
--passwordEncoding=aes选项时加密LTPA密钥密码。 此选项不能与 或--aesConfigFile--passwordKey选项同时使用。 --aesConfigFile=file
- 指定一个XML或Java属性文件,该文件定义了用于编码LTPA密钥密码的AES密钥。 该文件必须包含 wlp.password.encryption.key 或 wlp.aes.encryption.key。 此选项不能与 或
--passwordBase64Key--passwordKey选项同时使用。
configureFIPS
在所有服务器和客户端上配置FIPS 140-3。
选项是:
- --server=server_name
- 在指定服务器上配置FIPS 140-3。
- --client=client_name
- 在指定客户端上配置FIPS 140-3。
- --customProfileFile=name
- 对于 IBMSemeru Runtime ,创建一个自定义配置文件,使用指定的名称或位于指定的位置。 自定义配置文件的默认名称为 FIPS140-3-Liberty-Application.properties.
- 如果未提供此选项,自定义配置文件将位于 Liberty 安装目录的 目录 /etc 中。
- 如果未提供此选项且使用了
--server选项,则自定义配置文件位于指定服务器的 目录 /security 中。 - 如果未提供此选项且使用了
--client选项,则自定义配置文件位于指定客户端的 目录 /security 中。
- --disable
- 禁用所有未单独配置的服务器和客户端上的FIPS 140-3。 使用 和
--client--server选项配合--disable选项,分别禁用指定服务器和客户端的FIPS 140-3认证。
使用情况
以下示例说明正确的语法:
securityUtility encode --encoding=aes --base64Key=<your_base64_key> GiveMeLiberty
securityUtility createSSLCertificate --password=<your_password> \
--passwordEncoding=aes \
--passwordBase64Key=<your_base64_key> \
--server=myserver \
--validity=365 \
--subject=CN=mycompany,O=myOrg,C=myCountry
securityUtility createLTPAKeys --password=<your_password> \
--passwordEncoding=aes \
--passwordBase64Key=<your_base64_key> \
--file=myLTPA.keys
securityUtility help createSSLCertificate