Keytool命令詳解(好文章!詳細設定一些引數比如過期時間等)
以前用過幾次這個東東,但每次都重新查詢一次。本文原始出處是這裡 。
-----------------------------------------------------------
Keytool 是一個Java 資料證照的管理工具 ,Keytool 將金鑰(key)和證照(certificates)存在一個稱為keystore的檔案中 在keystore裡,包含兩種資料:
金鑰實體(Key entity)——金鑰(secret key)又或者是私鑰和配對公鑰(採用非對稱加密)
可信任的證照實體(trusted certificate entries)——只包含公鑰
ailas(別名)每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫
JDK中keytool 常用命令:
-genkey 在使用者主目錄中建立一個預設檔案".keystore",還會產生一個mykey的別名,mykey中包含使用者的公鑰、私鑰和證照
(在沒有指定生成位置的情況下,keystore會存在使用者系統預設目錄,如:對於window xp系統,會生成在系統的C:/Documents and Settings/UserName/檔名為“.keystore”)
-alias 產生別名
-keystore 指定金鑰庫的名稱(產生的各類資訊將不在.keystore檔案中)
-keyalg 指定金鑰的演算法 (如 RSA DSA(如果不指定預設採用DSA))
-validity 指定建立的證照有效期多少天
-keysize 指定金鑰長度
-storepass 指定金鑰庫的密碼(獲取keystore資訊所需的密碼)
-keypass 指定別名條目的密碼(私鑰的密碼)
-dname 指定證照擁有者資訊 例如: "CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名稱,ST=州或省份名稱,C=單位的兩字母國家程式碼"
-list 顯示金鑰庫中的證照資訊 keytool -list -v -keystore 指定keystore -storepass 密碼
-v 顯示金鑰庫中的證照詳細資訊
-export 將別名指定的證照匯出到檔案 keytool -export -alias 需要匯出的別名 -keystore 指定keystore -file 指定匯出的證照位置及證照名稱 -storepass 密碼
-file 引數指定匯出到檔案的檔名
-delete 刪除金鑰庫中某條目 keytool -delete -alias 指定需刪除的別 -keystore 指定keystore -storepass 密碼
-printcert 檢視匯出的證照資訊 keytool -printcert -file yushan.crt
-keypasswd 修改金鑰庫中指定條目口令 keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new 新密碼 -storepass keystore密碼 -keystore sage
-storepasswd 修改keystore口令 keytool -storepasswd -keystore e:/yushan.keystore(需修改口令的keystore) -storepass 123456(原始密碼) -new yushan(新密碼)
-import 將已簽名數字證照匯入金鑰庫 keytool -import -alias 指定匯入條目的別名 -keystore 指定keystore -file 需匯入的證照
下面是各選項的預設值。
-alias "mykey"
-keyalg "DSA"
-keysize 1024
-validity 90
-keystore 使用者宿主目錄中名為 .keystore 的檔案
-file 讀時為標準輸入,寫時為標準輸出
1、keystore的生成:
分階段生成:
keytool -genkey -alias yushan(別名) -keypass yushan(別名密碼) -keyalg RSA(演算法) -keysize 1024(金鑰長度) -validity 365(有效期,天單位) -keystore e:/yushan.keystore(指定生成證照的位置和證照名稱) -storepass 123456(獲取keystore資訊的密碼);
回車輸入相關資訊即可;
一次性生成:
keytool -genkey -alias yushan -keypass yushan -keyalg RSA -keysize 1024 -validity 365 -keystore e:/yushan.keystore -storepass 123456 -dname "CN=(名字與姓氏), OU=(組織單位名稱), O=(組織名稱), L=(城市或區域名稱), ST=(州或省份名稱), C=(單位的兩字母國家程式碼)";
(中英文即可)
2、keystore資訊的檢視:
keytool -list -v -keystore e:/keytool /yushan.keystore -storepass 123456
顯示內容:
---------------------------------------------------------------------
Keystore 型別: JKS
Keystore 提供者: SUN
您的 keystore 包含 1 輸入
別名名稱: yushan
建立日期: 2009-7-29
項型別: PrivateKeyEntry
認證鏈長度: 1
認證 [1]:
所有者:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
簽發人:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
序列號:4a6f29ed
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
證照指紋:
MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
簽名演算法名稱:SHA1withRSA
版本: 3
--------------------------------------------------------------------
預設情況下,-list 命令列印證照的 MD5 指紋。而如果指定了 -v 選項,將以可讀格式列印證照,如果指定了 -rfc 選項,將以可列印的編碼格式輸出證照。
keytool -list -rfc -keystore e:/yushan.keystore -storepass 123456
顯示:
-------------------------------------------------------------------------------------------------------
Keystore 型別: JKS
Keystore 提供者: SUN
您的 keystore 包含 1 輸入
別名名稱: yushan
建立日期: 2009-7-29
項型別: PrivateKeyEntry
認證鏈長度: 1
認證 [1]:
-----BEGIN CERTIFICATE-----
MIICSzCCAbSgAwIBAgIESm8p7TANBgkqhkiG9w0BAQUFADBqMQ8wDQYDVQQGDAbkuK3lm70xDzAN
BgNVBAgMBua5luWNlzEPMA0GA1UEBwwG5rmY5r2tMREwDwYDVQQKDAh4eOWNj+S8mjERMA8GA1UE
CwwIeHjlhazlj7gxDzANBgNVBAMTBnl1c2hhbjAeFw0wOTA3MjgxNjQwMTNaFw0xMDA3MjgxNjQw
MTNaMGoxDzANBgNVBAYMBuS4reWbvTEPMA0GA1UECAwG5rmW5Y2XMQ8wDQYDVQQHDAbmuZjmva0x
ETAPBgNVBAoMCHh45Y2P5LyaMREwDwYDVQQLDAh4eOWFrOWPuDEPMA0GA1UEAxMGeXVzaGFuMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJoru1RQczRzTnBWxefVNspQBykS220rS8Y/oX3mZa
hjL4wLfOURzUuxxuVQR2jx7QI+XKME+DHQj9r6aAcLBCi/T1jwF8mVYxtpRuTzE/6KEZdhowEe70
liWLVE+hytLBHZ03Zhwcd6q5HUMu27du3MPQvqiwzTY7MrwIvQQ8iQIDAQABMA0GCSqGSIb3DQEB
BQUAA4GBAGoQQ1/FnTfkpQh+Ni6h3fZdn3sR8ZzDMbOAIYVLAhBb85XDJ8QZTarHbZMJcIdHxAl1
i08ct3E8U87V9t8GZFWVC4BFg/+zeFEv76SFpVE56iX7P1jpsu78z0m69hHlds77VJTdyfMSvtXv
sYHP3fxfzx9WyhipBwd8VPK/NgEP
-----END CERTIFICATE-----
-------------------------------------------------------------------------------------------------------
3、證照的匯出:
keytool -export -alias yushan -keystore e:/yushan.keystore -file e:/yushan.crt(指定匯出的證照位置及證照名稱) -storepass 123456
4、檢視匯出的證照資訊
keytool -printcert -file yushan.crt
顯示:(在windows下可以雙擊yushan.crt檢視)
-----------------------------------------------------------------------
所有者:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
簽發人:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
序列號:4a6f29ed
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
證照指紋:
MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
簽名演算法名稱:SHA1withRSA
版本: 3
-----------------------------------------------------------------------
5、證照的匯入:
準備一個匯入的證照:
keytool -genkey -alias shuany -keypass shuany -keyalg RSA -keysize 1024 -validity 365 -keystore e:/shuany.keystore -storepass 123456 -dname "CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx";
keytool -export -alias shuany -keystore e:/shuany.keystore -file e:/shuany.crt -storepass 123456
現在將shuany.crt 加入到yushan.keystore中:
keytool -import -alias shuany(指定匯入證照的別名,如果不指定預設為mykey,別名唯一,否則匯入出錯) -file e:/shuany.crt -keystore e:/yushan.keystore -storepass 123456
keytool -list -v -keystore e:/keytool /yushan.keystore -storepass 123456
顯示:
------------------------------------------------------------------------------
Keystore 型別: JKS
Keystore 提供者: SUN
您的 keystore 包含 2 輸入
別名名稱: yushan
建立日期: 2009-7-29
項型別: PrivateKeyEntry
認證鏈長度: 1
認證 [1]:
所有者:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
簽發人:CN=yushan, OU=xx公司, O=xx協會, L=湘潭, ST=湖南, C=中國
序列號:4a6f29ed
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010
證照指紋:
MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3
SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8
簽名演算法名稱:SHA1withRSA
版本: 3
*******************************************
*******************************************
別名名稱: shuany
建立日期: 2009-7-29
輸入型別: trustedCertEntry
所有者:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx
簽發人:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx
序列號:4a6f2cd9
有效期: Wed Jul 29 00:52:41 CST 2009 至Thu Jul 29 00:52:41 CST 2010
證照指紋:
MD5:15:03:57:9B:14:BD:C5:50:21:15:47:1E:29:87:A4:E6
SHA1:C1:4F:8B:CD:5E:C2:94:77:B7:42:29:35:5C:BB:BB:2E:9E:F0:89:F5
簽名演算法名稱:SHA1withRSA
版本: 3
*******************************************
*******************************************
------------------------------------------------------------------------------
6、證照條目的刪除:
keytool -delete -alias shuany(指定需刪除的別名) -keystore yushan.keystore -storepass 123456
7、證照條目口令的修改:
keytool -keypasswd -alias yushan(需要修改密碼的別名) -keypass yushan(原始密碼) -new 123456(別名的新密碼) -keystore e:/yushan.keystore -storepass 123456
8、keystore口令的修改:
keytool -storepasswd -keystore e:/yushan.keystore(需修改口令的keystore) -storepass 123456(原始密碼) -new yushan(新密碼)
9、修改keystore中別名為yushan的資訊
keytool -selfcert -alias yushan -keypass yushan -keystore e:/yushan.keystore -storepass 123456 -dname "cn=yushan,ou=yushan,o=yushan,c=us"
對keytool 詳細的說明:
相關文章
- 定時任務@Scheduled引數詳解
- lsblk命令引數詳解
- tar命令引數詳解
- mysqlbinlog命令詳解 Part 11 其他的一些引數MySql
- find 命令的引數詳解
- localStorage設定過期時間
- redis設定過期時間Redis
- expdp/impdp 詳細引數解釋
- shell程式設計-sed命令詳解(超詳細)程式設計
- JavaScript 設定cookie 過期時間JavaScriptCookie
- C#:設定CefSharp的一些引數,比如忽略安全證書C#
- MySQL relay log 詳細引數解釋MySql
- JPS 命令詳細解釋
- JavaScript 設定Cookie過期時間無效JavaScriptCookie
- ES6中rest引數詳細講解REST
- 監聽配置細節引數詳解兩則
- 優雅的快取解決方案--設定過期時間快取
- OGG引數詳解
- ajax 引數詳解
- Linux下使用timedatectl命令時間時區操作詳解Linux
- FFmpeg命令影片音訊轉碼引數詳解音訊
- ab壓力測試命令及引數詳解
- 如何給localStorage設定一個過期時間?
- tomcat 設定session過期時間(四種方式)TomcatSession
- C# 給PDF文件設定過期時間C#
- mysqlbinlog命令詳解 Part 5 通過位置和時間檢視日誌MySql
- Jmeter 通過命令列 (CLI) 模式執行測試示例與引數詳解JMeter命令列模式
- 最詳細的解說—時間和空間複雜度複雜度
- 冪等設計詳解
- Dockerfile - 引數與詳解Docker
- 函式引數詳解函式
- Flink Checkpoint 引數詳解
- Golang環境變數設定詳解Golang變數
- 通過offsets.retention.minutes設定kafkaoffset的過期時間Kafka
- FV詳細聊聊Redis的過期策略nltRedis
- Windows10內部版本已過期詳細解決方法Windows
- JVM入門(JVM引數詳解和常用命令)JVM
- eclipse設定護眼色詳細教程Eclipse