天天看點

java 自簽名ssl證書_自簽名SSL證書的生成

自簽證書雖然提示:不安全。但還是有很多的好處,是以下面先說說自簽證書的生成,主要使用Java JDK下的:keytool.exe

2:安裝完後,根據實際的路徑找到keytool.exe,如我的在此路徑:C:\Program Files (x86)\Java\jdk1.8.0_101\bin\keytool.exe

3:生成keystore。打開指令行(cmd),去到keytool所在的路徑,運作:

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore d:\mykeystore\keystore.p12 -validity 3650 -ext san=ip:192.168.100.132 -dname "CN=garyyan, OU=mycompany, O=mycompany, L=gd, ST=gd, C=china"

此指令中間隻需要輸入密碼,就能生成keystore,假設密碼是:123456

其中:

(1)keystore可了解為一個資料庫,可以存很多個組資料。

每組資料主要包含下面兩種資料:

a:密鑰實體(Key entity)——密鑰(secret key)又或者是私鑰和配對公鑰(采用非對稱加密)

b:可信任的證書實體(trusted certificate entries)——隻包含公鑰

(2)-keystore d:\mykeystore\keystore.p12,指定在d:\mykeystore(先要手動建立此檔案夾),生成keystore:keystore.p12

(3)-alias tomcat,為其指明在keystore中的唯一的别名:tomcat ,因為keystore中可能還存有其它的别名,如:tomcat 2

(4)-storetype PKCS12指明密鑰倉庫類型是PKCS12

(5)-keyalg RSA,指定加密算法,本例中的采用通用的RAS加密算法

(6)-keysize 2048指定密鑰的長度為2048

(7)-validity 3650 指定證書的有效期為3650天

(8)-ext san=ip:192.168.100.132請根據你的伺服器的IP位址設定,如果不進行設定,用戶端在通路的時候可能會報錯

(9)-dname “CN=garyyan, OU=mycompany,O=mycompany,L=gd, ST=gd, C=china”

其中:”CN=(名字與姓氏), OU=(組織機關名稱), O=(組織名稱), L=(城市或區域名稱), ST=(州或省份名稱), C=(機關的兩字母國家代碼)”,我在測試的過程中發現随便填就行

4:導出公鑰證書(主要用于用戶端):

運作指令:

keytool -export -keystore d:\mykeystore\keystore.p12 -alias tomcat -file mycer.cer -storepass 123456

其中:

(1)-keystore d:\mykeystore\keystore.p12 是指上面的keystore檔案

(2)-alias tomcat是指定别名為tomcat的那一組

(3)-file mycer.cer指定在目前目錄生成名為mycer.cer的證書

(4)-storepass 123456是上面生成keystore 所用的密碼