Java keytool是密鑰和證書管理工具。它使用戶可以管理本身的公鑰/私鑰對及相關證書,用於(經過數字簽名)自我認證(用戶向別的用戶/服務認證本身)或數據完整性以及認證服務。它還容許用戶儲存他們的通訊對等者的公鑰(以證書形式)。
一. Keytool建立和導入命令
建立keystore和密鑰對
Generate a Java keystore and key pair算法
keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -keysize 2048服務器
爲存在的keystore生成證書請求文件CSR
Generate a certificate signing request (CSR) for an existing Java keystoredom
keytool -certreq -alias mydomain -keystore keystore.jks -file mydomain.csride
導入根證書或中級證書到keystore
Import a root or intermediate CA certificate to an existing Java keystore工具
keytool -import -trustcacerts -alias root -file mydomain.crt -keystore keystore.jks加密
導入SSL服務器證書到keystore
Import a signed primary certificate to an existing Java keystorecode
keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore keystore.jks文檔
爲存在的keystore生成自簽名證書
Generate a keystore and self-signed certificate域名
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048it
二. Keytool查看命令
查看單個證書
Check a stand-alone certificate
keytool -printcert -v -file mydomain.crt
列出keystore存在的全部證書
Check which certificates are in a Java keystore
keytool -list -v -keystore keystore.jks
使用別名查看keystore特定條目
Check a particular keystore entry using an alias
keytool -list -v -keystore keystore.jks -alias mydomain
三. 其餘Keytool命令
刪除keystore裏面指定證書
Delete a certificate from a Java Keytool keystore
keytool -delete -alias mydomain -keystore keystore.jks
更改keysore密碼
Change a Java keystore password
keytool -storepasswd -new new_storepass -keystore keystore.jks
導出keystore裏面的指定證書
Export a certificate from a keystore
keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks
列出信任的CA證書
List Trusted CA Certs
keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts
導入新的CA到信任證書
Import New CA into Trusted Certs
keytool -import -trustcacerts -file /path/to/ca/ca.pem -alias CA_ALIAS -keystore $JAVA_HOME/jre/lib/security/cacerts
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 需導入的證書