一、生成證書工具keytool
Java自帶的工具keytool可以用來生成密鑰證書,也可以查看或刪除證書庫里的證書。無論是windows還是Linux系統,這個工具都會出現在jdk安裝目錄的bin文件夾下。
keytool工具是基於“證書庫”來對密鑰進行管理的。“證書庫”是一個后綴名為“.keystore”的文件
在密鑰庫中,每一條記錄就是一份獨立的證書,如果使用RSA算法,那這份證書里就會包含有私鑰和公鑰
keytool工具有很多命令,無論是在windows還是在linux中,你都可以在命令行中輸入“keytool”來查看這個工具的用法概述:
二、生成證書
keytool -genkey -alias 你的證書別名 -keyalg 密鑰算法 -keystore 證書庫文件保存的位置和文件名 -keysize 密鑰長度 -validity 證書有效期天數
2.1 解釋一下幾個參數的含義
-genkey:創建證書
-alias:證書的別名。在一個證書庫文件中,別名是唯一用來區分多個證書的標識符
-keyalg:密鑰的算法,非對稱加密的話就是RSA
-keystore:證書庫文件保存的位置和文件名。如果路徑寫錯的話,會出現報錯信息。如果在路徑下,證書庫文件不存在,那么就會創建一個
-keysize:密鑰長度,一般都是1024
-validity:證書的有效期,單位是天。比如36500的話,就是100年
所以完整的一條創建命令可能是這樣的:
keytool -genkey -alias xiaoyaodijun.keystore -keyalg RSA -keystore xiaoyaodijun.keystore -keysize 1024 -validity 36500
然后,keytool會要求你輸入證書庫的密碼,而且是連續輸入兩遍。注意 這是“證書庫”的密碼,而不是你所要生成的證書的密碼,這是兩個不同的密碼
之后,keytool會要求你輸入自己的姓名、所在單位/公司/組織的名稱、所在城市的名稱、所在地區的名稱、和2位的國家編碼,照着它的引導步驟做就可以了。如果所有信息都2.2 輸入正確的話,記得在最后輸入y,並回車
最后,keytool會要求你輸入證書的密碼,也是連續輸入兩遍
2.3 查看證書
可以使用以下命令來查看一份已存在的證書庫中的所有證書
keytool -list -keystore xiaoyaodijun.keystore
三、到處證書文件
keytool -export -alias xiaoyaodijun.keystore -keystore xiaoyaodijun.keystore -file mypublickey.cer