java#keytool#生成私鑰證書庫、公鑰證書庫


原文,向作者致敬🖖

 

假如我們設置公鑰庫密碼為:public_password1234,私鑰庫密碼為:private_password1234,則生成命令如下:


#生成命令
keytool -genkeypair -keysize 1024 -validity 3650 -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -keypass "private_password1234" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"
#導出命令
keytool -exportcert -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -file "certfile.cer"
#導入命令
keytool -import -alias "publicCert" -file "certfile.cer" -keystore "publicCerts.keystore" -storepass "public_password1234"
上述命令執行完成之后,會在當前路徑下生成三個文件,分別是:privateKeys.keystore、publicCerts.keystore、certfile.cer。


其中文件certfile.cer不再需要可以刪除,
文件privateKeys.keystore用於當前的 ServerDemo 項目給客戶生成license文件,
而文件publicCerts.keystore則隨應用代碼部署到客戶服務器,用戶解密license文件並校驗其許可信息。


 

 

 

 //關於第一條命令的猜想

1. 目的生成密鑰對,啥是密鑰對?
2. -dname 是密鑰對的所屬者信息,
3. -keystore應該是密鑰對的存儲介質,代表一個密鑰庫
4. -storepass應該是密鑰庫的進入密碼
5. -alias 應該是密鑰庫里面的一個密鑰的名稱
6. -keypass應該是密鑰庫里面那個由alias命名的密鑰的密碼
7. -keysize估計是密鑰庫里面的alias命名的密鑰的大小
8. -validaty估計是密鑰庫里面的alias命名的密鑰的有效天數

 

 

 

 //關於第二條命令的猜想

1. -keystore從哪個密鑰庫導出證書
2. -storepass密鑰庫進入的密碼
3. -alias密鑰庫中的哪個密鑰條目要被導出
4. -file被導出的密鑰要寫到哪個文件里面 

 

 

 

 //關於第三條命令的猜想

1. -keystore要把證書導入到哪個密鑰庫
2. -storepass證書導入的那個密鑰庫的密碼
3. -file標識要被導入的證書
4. -alias把證書導入密鑰庫時創建的(證書或密鑰)條目

 

 


 最后可以看出來:

密鑰庫,即*.keystore,里面存儲的條目,可以是密鑰,也可以是證書;

密鑰庫,中的條目可以導出證書;

密鑰庫,可以導入證書。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM