證書格式有哪些,區別以及如何生成證書


本文為博主原創,未經允許不得轉載:

  一般來說,主流的Web服務軟件,通常都基於OpenSSL和Java兩種基礎密碼庫。

  • Tomcat、Weblogic、JBoss等Web服務軟件,一般使用Java提供的密碼庫。通過Java Development Kit (JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的證書文件。

  • Apache、Nginx等Web服務軟件,一般使用OpenSSL工具提供的密碼庫,生成PEM、KEY、CRT等格式的證書文件。

 

證書格式:

  • .DER或.CER文件: 這樣的證書文件是二進制格式,只含有證書信息,不包含私鑰。

  • *.CRT文件: 這樣的證書文件可以是二進制格式,也可以是文本格式,一般均為文本格式,功能與 .DER及.CER證書文件相同。

  • *.PEM文件: 這樣的證書文件一般是文本格式,可以存放證書或私鑰,或者兩者都包含。 .PEM 文件如果只包含私鑰,一般用.KEY文件代替。

  • .PFX或.P12文件: 這樣的證書文件是二進制格式,同時包含證書和私鑰,且一般有密碼保護。

 

使用openSSL生成證書及證書導入到jks,生成p12證書導入到 jks操作步驟如下:

  1. 使用 OpenSSL 生成私鑰與簽名證書文件,並根據提示輸入對應的證書屬性包括國家,區域,域名等;

  1. 生成 cer 的證書文件:根據 第一步生成的私鑰與簽名文件生成一個cer文件 ;

  1. 將上一步生成的 server.crt 導入到指定的 jks 文件中 ;

  1. 查看導入 jks 的證書 ;

  1. 將 1 和2 生成的文件導入到 p12文件中;

  1. 將生成的P12文件導入到jks中;

  1. 重新查看jks中的證書配置;

 

  1.使用以下命令生成私鑰與簽名證書文件,並根據提示輸入對應的證書屬性包括國家,區域,域名等:

openssl req -new -newkey rsa:2048 -nodes -keyout www.test.com.key -out www.test.com.csr

  其中 rsa:2048 為生成的證書的長度,www.test.com.key 為申請生成的私鑰文件,www.test.com.csr 為申請生成的證書簽名請求文件。

  CSR是Certificate Signing Request的英文縮寫,即證書簽名請求文件,是證書申請者在申請數字證書時由CSP(加密服務提供者)在生成私鑰的同時也生成證書請求文件,

證書申請者只要把CSR文件提交給證書頒發機構后,證書頒發機構使用其根證書私鑰簽名就生成了證書公鑰文件,也就是頒發給用戶的證書。

  CSR是以-----BEGIN CERTIFICATE REQUEST-----開頭,-----END CERTIFICATE REQUEST-----為結尾的base64格式的編碼。將其保存為文本文件,就是所謂的CSR文件。

有CSR必定有KEY,是成對的,CSR最終變成為證書,和私鑰key配對使用。 Key是以-----BEGIN RSA PRIVATE KEY-----開頭的,-----END RSA PRIVATE KEY-----結尾的。

Key必須保存好。證書下發后,CSR無需使用,僅提交時候需要。

  2.生成 cer 的證書文件:根據 第一步生成的私鑰與簽名文件生成一個cer文件

openssl x509 -req -days 365 -in www.test.com.csr -signkey www.test.com.key -out www.test.com.crt

  x509的含義: 指定格式

  -days 365 : 證書的有效期為 365 天

  -signkey的含義: 自簽名

 

   3. 將上一步生成的 server.crt 導入到指定的 jks 文件中

 keytool -import -trustcacerts -alias testServer -file server.crt -keystore testServer.jks 
  -trustcacerts -alias testServer : 信任證書並定義別名

 

  4. 查看導入 jks 的證書

keytool -v -list -keystore  testServer.jks

  查看 jks 中的證書信息

   

  5.將 1 和2 生成的文件導入到 p12文件中:

 openssl pkcs12 -export -in server.crt -inkey www.test.com.key -out mycert.p12 -name abc -CAfile myCA.crt 

  生成過程輸入的密碼就是keypass

   name就是別名

  

 

 

  6. 將生成的P12文件導入到jks中:

keytool -importkeystore -v -srckeystore mycert.p12 -srcstoretype pkcs12 -srcstorepass a123456 -destkeystore Aserver.keystore -deststoretype jks -deststorepass b123456

  deststorepass就是新生成的storepass

  

 

   

  7. 重新查看jks中的證書配置:

 keytool -v -list -keystore Aserver.keystore

  執行如圖:

 


免責聲明!

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



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