securityUtility 指令
securityUtility 指令支援 Liberty的純文字加密和 SSL 憑證建立。
Open Liberty 網站上提供 21.0.0.11 版以及更新版本中 securityUtility 指令的
Documentation 。
語法
指令語法如下:
securityUtility task [options]
其中,options 會因 task 值而不同。
警告:
不同的作業系統和指令行環境處理某些字元的方式不同。 在許多環境中,您可以重新定義哪些字元是特殊的,以及它們的行為。
D:\Liberty\images\855\Liberty855\wlp\bin>securityUtility encode "a^!"對於某些作業系統,您可能需要使用單引號來括住傳遞給工具的引數。
如果您使用終端機模擬器,請確定您的階段作業是配置成使用您伺服器的相同字碼頁。
如果您遇到非預期的結果,請參閱您的作業系統、指令 Shell,以及有關特殊字元和字碼頁的終端機模擬器說明文件。
參數
securityUtility 指令的可用作業如下:- encode
- 利用 Base64 對所提供的文字進行編碼。 如果未指定任何選項,指令會進入互動模式。 否則,會將提供的文字進行編碼。 含有空格的文字必須用引號括住。選項如下:
- -- encoding=encoding_type
- 指定如何將密碼編碼。 支援的編碼為
xor、aes和hash。 如果沒有提供這個選項,會使用預設編碼xor。 目前,aes類型使用 AES-128 加密。附註: 您可以使用hash編碼選項來編碼基本使用者登錄的密碼。您也可以使用選項來編碼 quickStartSecurity 元素的密碼。
- -- key=encryption_key
- 指定利用 AES 加密來編碼時所要使用的金鑰。 這個字串進行雜湊,會產生用來將密碼加密和解密的加密金鑰。 您可以定義其值為金鑰的
wlp.password.encryption.key變數,將金鑰提供給伺服器。 如果沒有提供這個選項,會使用預設金鑰。另請參閱針對
wlp.password.encryption.key設定變數 的相關資訊。 - --listCustom
- 以 JavaScript Object Notation (JSON) 格式顯示自訂密碼加密的資訊。 資訊由下列組成:
- name:自訂密碼加密演算法名稱。
- featurename:特性名稱。
- description:自訂密碼加密的說明。
如需自訂密碼加密的相關資訊,請參閱 開發 customPassword加密提供者。
- --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。PKCS12 金鑰儲存庫的優點多於 JKS 金鑰儲存庫。 PKCS12 金鑰儲存庫擴充性更高,支援更強的加密演算法,並且廣泛採用。 PKCS12 格式經常是憑證管理中心發出憑證時所提供的格式。
- --keySize=size
- 指定憑證金鑰位元大小。 預設值為 2048。
- -- password=password
- 在金鑰儲存庫中指定要用的密碼,長度必須是至少 6 個字元。 這個選項是必要的。
- --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旗標的語法。
- help
- 列印指定作業的說明資訊。
使用情形
下列範例示範正確的語法:
securityUtility encode --encoding=aes GiveMeLiberty
securityUtility createSSLCertificate --server=myserver --password=mypassword --validity=365
--subject=CN=mycompany,O=myOrg,C=myCountry
securityUtility help createSSLCertificate