知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
目錄
Keytool介紹 Keytool 是一個Java數據證書的管理工具 ,Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的檔案中在keystore裡,包含兩種數據:密鑰實體(Key entity)-密鑰(secret key)或者是私鑰和配對公鑰(採用非對稱加密)可信任的證書實體(trusted certificate entries)-只包含公鑰. JDK中keytool常用參數說明(不同版本有差異,詳細可參見【附錄】中的官方文檔連結): -genkey 在用戶主目錄 -genkey 在用戶主目錄中創建一個預設檔案”.keystore”,還會產生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書(在沒有指定生成位置的情況下,keystore會存在用戶系統預設目錄) -alias 產生別名 每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫 -keystore 指定密鑰庫的名稱(產生的各類信息將不在.keystore檔案中) -keyalg 指定密鑰的算法 (如 RSA DSA,預設值為:DSA) -validity 指定創建的證書有效期多少天(預設 90) -keysize 指定密鑰長度 (預設 1024) -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 g:\sso\michael.crt -keypasswd 修改密鑰庫中指定條目口令 keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new 新密碼 -storepass keystore密碼 -keystore sage -storepasswd 修改keystore口令 keytool -storepasswd -keystore g:\sso\michael.keystore(需修改口令的keystore) -storepass pwdold(原始密碼) -new pwdnew(新密碼) -import 將已簽名數字證書導入密鑰庫 keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書 中創建一個預設檔案”.keystore”,還會產生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書(在沒有指定生成位置的情況下,keystore會存在用戶系統預設目錄) -alias 產生別名 每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫 -keystore 指定密鑰庫的名稱(產生的各類信息將不在.keystore檔案中) -keyalg 指定密鑰的算法 (如 RSA DSA,預設值為:DSA) -validity 指定創建的證書有效期多少天(預設 90) -keysize 指定密鑰長度 (預設 1024) -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 g:\sso\michael.crt -keypasswd 修改密鑰庫中指定條目口令 keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new 新密碼 -storepass keystore密碼 -keystore sage -storepasswd 修改keystore口令 keytool -storepasswd -keystore g:\sso\michael.keystore(需修改口令的keystore) -storepass pwdold(原始密碼) -new pwdnew(新密碼) -import 將已簽名數字證書導入密鑰庫 keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書
keytool -genkey -keyalg RSA -keystore keys/server.keystore Enter keystore password: changeit What is your first and last name? [Unknown]: www.caucho.com What is the name of your organizational unit? [Unknown]: Resin Engineering What is the name of your organization? [Unknown]: Caucho Technology, Inc. What is the name of your City or Locality? [Unknown]: San Francisco What is the name of your State or Province? [Unknown]: California What is the two-letter country code for this unit? [Unknown]: US Is <CN=www.caucho.com, OU=Resin Engineering, O="Caucho Technology, Inc.", L=San Francisco, ST=California, C=US> correct? [no]: yes Enter key password for <mykey> (RETURN if same as keystore password): changeit