keytool是Java的數字證書管理工具,用於數字證書的生成,導入,導出與撤銷等操做。它與本地密鑰庫關聯,並能夠對本地密鑰庫進行管理,能夠將私鑰存放於密鑰庫中,而公鑰使用數字證書進行輸出。keytool在jdk安裝目錄的bin文件夾下:算法
在構建CSR以前,須要先在密鑰庫中生成本地數字證書,此時須要提供用戶的身份、加密算法、有效期等一些數字證書的基本信息:
shell
keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA \ -validity 365 -alias www.mydomain.com -keystore ~/my.keystore
參數介紹:dom
-genkeypair——產生密鑰對工具
-keyalg——指定加密算法加密
-keysize——指定密鑰長度spa
-sigalg——指定簽名算法code
-validity——證書有效期ci
-alias——證書別名it
-keystore——指定密鑰庫的位置class
執行結果:
執行了上面的命令後,咱們已經生成了一個本地數字證書,雖然尚未通過證書認證機構進行認證,但並不影響使用,咱們能夠使用相應的命令對證書進行導出。
keytool -exportcert -alias \ -keystore ~/my.keystore -file /tmp/my.cer -rfc
參數介紹:
-exportcert——執行證書導出
-alias——密鑰庫中的證書別名
-keystore——指定密鑰庫文件
-file——導出的文件輸出路徑
-rfc——使用Base64格式輸出
執行結果:
證書導出後,能夠使用打印證書命令查看證書內容:
keytool -printcert -file /tmp/my.cer
參數介紹:
-printcert——執行證書打印命令
-file——指定證書文件路徑
執行結果:
若是想獲得證書認證機構的認證,須要導出數字證書並簽發申請(Cerificate Signing Request),經證書認證機構認證並頒發後,再將認證後的證書導入本地密鑰庫與信任庫。
導出CSR文件命令:
keytool -certreq -alias \ -keystore ~/my.keystore -file /tmp/my.csr -v
參數介紹:
-certreq——執行證書籤發申請導出操做
-alias——證書的別名
-keystore——使用的密鑰庫文件
-file——輸出的csr文件路徑
-v——顯示詳細狀況
執行結果:
導出CSR文件後,即可以到VeriSign、GeoTrust等權威機構進行證書認證了。
得到證書認證機構辦法的數字證書後,須要將其導入信任庫。
導入數字證書的命令:
keytool -importcert -trustcacerts -alias www.mydomain.com \ -file /tmp/my.cer -keystore ~/my.keystore
參數介紹:
-importcert——執行導入證書操做
-trustcacerts——將證書導入信任庫
-alias——證書別名
-file——要導入的證書文件的路徑
-keystore——指定密鑰庫文件
導入證書成功後,能夠經過list命令來查看密鑰庫中的證書:
keytool -list -alias www.mydomain.com -keystore ~/my.keystore
執行結果以下: