Https證書生成步驟

目錄:
1、生成密鑰
2、簽發證書
3、生成安卓使用的證書集bks(cer轉bks)
4、jks轉bks(雙向校驗需要)
5、cer轉jks(tls服務器需要)

1、生成密鑰

生成密鑰(即jks文件),此處的代碼是爲了生成一個“zinc_server.jks”的密鑰。

keytool -genkey -alias zinc_server -keyalg RSA -keystore zinc_server.jks -validity 3600 -storepass 123456

參數說明:

  • genkey 在用戶主目錄中創建一個默認文件".keystore",還會產生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書

在沒有指定生成位置的情況下,keystore會存在用戶系統默認目錄,如:對於window xp系統,會生成在系統的C:/Documents and Settings/UserName/文件名爲“.keystore”

  • alias:產生別名
  • keystore:指定密鑰庫的名稱
  • validity:指定創建的證書有效期多少天
  • storepass:指定密鑰庫的密碼(獲取keystore信息所需的密碼)
  • keyalg:指定密鑰的算法(如:RSA 、DSA;如果不指定默認採用DSA)
更多的參數:
  • keysize:指定密鑰長度
  • keypass:指定別名條目的密碼(私鑰的密碼)
  • dname:指定證書擁有者信息

例如: "CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名稱,ST=州或省份名稱,C=單位的兩字母國家代碼"

  • list :顯示密鑰庫中的證書信息
keytool -list -keystore 指定keystore -storepass 密碼
  • v:顯示密鑰庫中的證書詳細信息
keytool -list -v -keystore 指定keystore -storepass 密碼
  • export:將別名指定的證書導出到文件
keytool -export -alias 需要導出的別名 -keystore 指定keystore -file 指定導出的證書位置及證書名稱 -storepass 密碼
  • file 參數指定導出到文件的文件名
  • delete 刪除密鑰庫中某條目
keytool -delete -alias 指定需刪除的別  -keystore 指定keystore  -storepass 密碼
  • printcert 查看導出的證書信息
keytool -printcert -file zinc_server.cer(換成你的證書)
  • keypasswd 修改密鑰庫中指定條目口令
keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new  新密碼  -storepass keystore密碼  -keystore sage
  • storepasswd 修改keystore口令
keytool -storepasswd -keystore 需修改口令的keystore -storepass 原始密碼 -new 新密碼
  • import 將已簽名數字證書導入密鑰庫
keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書

2、簽發證書

這裏使用了第1小節的zinc_server.jks密鑰進行簽發zinc_server.cer證書

keytool -export -alias zinc_server -file zinc_server.cer  -keystore zinc_server.jks  -storepass 123456 

3、生成安卓使用的證書集bks

在安卓中需要使用bks格式的證書集,所以在安卓中使用的話還需要將第2小節生成的證書進行轉換。使用的如下命令

keytool -importcert -file zinc_server.cer -keystore zinc_server.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

敲黑板啦!!!使用瞭如上命令,有可能你會遇到找不到BouncyCastleProvider這個類的異常,這個時候你需要稍微配置下環境(不難哦,千萬不要放棄!)。

進入到bouncycastle官網下載自己對應的jdk的版本。將下載好的jar包放到你的jdk安裝的路徑下/Contents/Home/jre/lib/ext,重新再試一次即可。

4、jks轉bks

這一小節的內容,是因爲有些app需要進行雙向校驗,需要將客戶端的密鑰放在app中。
需要藉助一個工具進行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章