使用 keytool 生成密鑰對 + keytool 命令詳解
一、生成密鑰對
G:>keytool -genkeypair ^
More? -alias own-alias ^
More? -keyalg RSA ^
More? -keypass password ^
More? -sigalg SHA256withRSA ^
More? -dname "cn=zolmk,ou=zolmk,o=zolmk,l=HN,st=HN,c=CN" ^
More? -validity 3650 ^
More? -keystore keystore.jks ^
More? -storetype JKS ^
More? -storepass password
參數詳解:
-genkeypair
:原-genkey
,Java 1.6 之后更改,表示生成密鑰對-alias
:產生別名,每個 keystore 都會關聯這一個獨一無二的 alias,alias 不區分大小寫-keyalg
:指定產生密鑰的算法-keypass
:指定別名條目的密碼(私鑰的密碼)-sigalg
:簽名算法名稱-dname
:唯一判別名,cn 所有者名稱,ou 組織單位名稱,o 組織名稱,l 城市或區域名稱,st 州或省份名稱,c 兩字母國家代碼-validity
:有效天數-keystore
:密鑰庫名稱-storetype
:密鑰庫類型-storepass
:密鑰庫口令
二、查看密鑰庫
keytool -list -v -keystore keystore.jks -storepass "password"
-list
:列出密鑰庫中的條目-v
:詳細輸出-keystore
:密鑰庫文件
三、keytool 全部命令
-certreq 生成證書請求
-changealias 更改條目的別名
-delete 刪除條目
-exportcert 導出證書
-genkeypair 生成密鑰對
-genseckey 生成密鑰
-gencert 根據證書請求生成證書
-importcert 導入證書或證書鏈
-importpass 導入口令
-importkeystore 從其他密鑰庫導入一個或所有條目
-keypasswd 更改條目的密鑰口令
-list 列出密鑰庫中的條目
-printcert 打印證書內容
-printcertreq 打印證書請求的內容
-printcrl 打印 CRL 文件的內容
-storepasswd 更改密鑰庫的存儲口令
1)二級命令參數
-list
列出密鑰庫中的條目
-rfc 以 RFC 樣式輸出
-alias <alias> 要處理的條目的別名
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-genkeypair
生成密鑰對
-alias <alias> 要處理的條目的別名
-keyalg <keyalg> 密鑰算法名稱
-keysize <keysize> 密鑰位大小
-sigalg <sigalg> 簽名算法名稱
-destalias <destalias> 目標別名
-dname <dname> 唯一判別名
-startdate <startdate> 證書有效期開始日期/時間
-ext <value> X.509 擴展
-validity <valDays> 有效天數
-keypass <arg> 密鑰口令
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-genseckey
生成密鑰
-alias <alias> 要處理的條目的別名
-keypass <arg> 密鑰口令
-keyalg <keyalg> 密鑰算法名稱
-keysize <keysize> 密鑰位大小
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-certreq
生成證書請求
-alias <alias> 要處理的條目的別名
-sigalg <sigalg> 簽名算法名稱
-file <filename> 輸出文件名
-keypass <arg> 密鑰口令
-keystore <keystore> 密鑰庫名稱
-dname <dname> 唯一判別名
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-changealias
更改條目的別名
-alias <alias> 要處理的條目的別名
-destalias <destalias> 目標別名
-keypass <arg> 密鑰口令
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-delete
刪除條目
-alias <alias> 要處理的條目的別名
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-exportcert
導出證書
-rfc 以 RFC 樣式輸出
-alias <alias> 要處理的條目的別名
-file <filename> 輸出文件名
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-gencert
根據證書請求生成證書
-rfc 以 RFC 樣式輸出
-infile <filename> 輸入文件名
-outfile <filename> 輸出文件名
-alias <alias> 要處理的條目的別名
-sigalg <sigalg> 簽名算法名稱
-dname <dname> 唯一判別名
-startdate <startdate> 證書有效期開始日期/時間
-ext <value> X.509 擴展
-validity <valDays> 有效天數
-keypass <arg> 密鑰口令
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-importcert
導入證書或證書鏈
-noprompt 不提示
-trustcacerts 信任來自 cacerts 的證書
-protected 通過受保護的機制的口令
-alias <alias> 要處理的條目的別名
-file <filename> 輸入文件名
-keypass <arg> 密鑰口令
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-importpass
導入口令
-alias <alias> 要處理的條目的別名
-keypass <arg> 密鑰口令
-keyalg <keyalg> 密鑰算法名稱
-keysize <keysize> 密鑰位大小
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-protected 通過受保護的機制的口令
-importkeystore
從其他密鑰庫導入一個或所有條目
-srckeystore <srckeystore> 源密鑰庫名稱
-destkeystore <destkeystore> 目標密鑰庫名稱
-srcstoretype <srcstoretype> 源密鑰庫類型
-deststoretype <deststoretype> 目標密鑰庫類型
-srcstorepass <arg> 源密鑰庫口令
-deststorepass <arg> 目標密鑰庫口令
-srcprotected 受保護的源密鑰庫口令
-srcprovidername <srcprovidername> 源密鑰庫提供方名稱
-destprovidername <destprovidername> 目標密鑰庫提供方名稱
-srcalias <srcalias> 源別名
-destalias <destalias> 目標別名
-srckeypass <arg> 源密鑰口令
-destkeypass <arg> 目標密鑰口令
-noprompt 不提示
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-keypasswd
更改條目的密鑰口令
-alias <alias> 要處理的條目的別名
-keypass <arg> 密鑰口令
-new <arg> 新口令
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出
-printcert
打印證書內容
-rfc 以 RFC 樣式輸出
-file <filename> 輸入文件名
-sslserver <server[:port]> SSL 服務器主機和端口
-jarfile <filename> 已簽名的 jar 文件
-v 詳細輸出
-printcertreq
打印證書請求的內容
-file <filename> 輸入文件名
-v 詳細輸出
-printcrl
打印 CRL 文件的內容
-file <filename> 輸入文件名
-v 詳細輸出
-storepasswd
更改密鑰庫的儲存口令
-new <arg> 新口令
-keystore <keystore> 密鑰庫名稱
-storepass <arg> 密鑰庫口令
-storetype <storetype> 密鑰庫類型
-providername <providername> 提供方名稱
-providerclass <providerclass> 提供方類名
-providerarg <arg> 提供方參數
-providerpath <pathlist> 提供方類路徑
-v 詳細輸出