天天看點

JAVA Keytool指令詳解

JAVA Keytool 常用指令使用幫助

Keytool 是用于管理密鑰和證書的工具,使使用者和管理者能管理自己的公 / 私鑰對以及相關的證書。

— genkey ,用于生成公 / 私密鑰對

keytool –genkey –alias mykey –keyalg RSA –keypass 123456 –keystore keystore.jks –storepass 123456

ˉkeyalg: 指定密鑰使用的加密算法(如 RSA )。還可以使用選項 keysize 指定密鑰的長度,如果沒有指定長度,那麼 keytool 将使用預設值 ———1024 位。

       ˉkeypass: 指定生成密鑰的密碼。

       ˉkeystore: 指定存儲密鑰的密鑰庫的名稱(二進制檔案),如果沒有指定,那麼将建立一個新的密鑰庫,并将其存儲為 .keystore 檔案。

       ˉstorepass: 指定通路密鑰庫的密碼。密鑰庫建立後,要對其做任何修改都必須提供該密碼,以便通路密鑰庫。

       在執行 -genkey 時還會要求使用者輸入以下幾項資料

CN :       commen name

OU :       organization unit

O :         organization

L :          location

ST :        state

C:           country

其中 CN 伺服器根證書的 ip 或者域名,即檢視證書時的頒發給項

— list

用于列出密鑰庫中全部的項,以及檢視與别名相關的項。

keytool –list –keystore keystore.jks

為了顯示别名所指定的密鑰庫項的内容,指令 list 可以輸出證書的 MD5 指紋。如果指定了選項 ˉv ,則證書将以人類可讀的格式顯示 ; 如果指定了選項 ˉrfc ,則将以 Base64 編碼格式顯示證書。

— import

導入可信證書。 Keytool 選項 ˉimport 用于将可信證書導入密鑰庫,并将其同唯一的一個别名聯系起來。如果用戶端信任通信等對體的證書,并希望與其進行可信的用戶端互動,則可以在用戶端環境中導入可信證書。

将新證書導入密鑰庫時, keytool 工具将驗證該證書的完整性和真實性。為此, keytool 工具将建構一條以該證書開始到頒發者的自簽名證書結束的信任鍊。可信證書的清單将存儲在 cacerts 檔案中。

要将證書導入密鑰庫,則需要提供辨別證書項的唯一 别名和密鑰密碼。

例如,下面的指令從檔案 cert.cer 中将一個證書項導入到密鑰庫 keystore.jks ,并将該證書項辨別為 newcert ,最後,該指令将顯示證書的持有者和頒發者的資訊,并詢問使用者是否信任該證書 。

keytool –import –alias newcert –file cert.cer –keystore keystore.jks

— printcert

顯示證書的資訊。 Keytool 選項 ˉprintcert 用于顯示已從密鑰庫中導出并存儲為檔案的證書的資訊。由于證書的資訊是以證書檔案( .cer )的形式存儲的,且不會導入密鑰庫,是以在執行該指令時,不需要指定相關的密鑰庫和密碼。

       keytool –printcert –file cert.cer

— certReq

建立證書簽發請求( CSR )。可以使用 Keytool 選項 ˉcertreq 來生成向 CA 申請證書的證書簽發請求。

keytool –certReq –keystore keystore.jks –file mycsr.csr

— delete

删除密鑰庫。要删除密鑰庫,可以使用作業系統的删除指令來删除該密鑰庫檔案。

修改密鑰庫的密碼。

— storepasswd

要修改密鑰庫的密碼,可以使用 keytool 選項 -storepasswd -new 來設定新密碼。

keytool –storepasswd –new newpassword –keystore keystore.jks

繼續閱讀