openssl制作證書全過程及https實現


證書格式說明

  • 帶有私鑰的證書 PKCS12(P12):包含了公鑰和私鑰的二進制格式的證書形式,以 pfx 作為證書文件后綴名。
  • 二進制編碼的證書(DER):證書中沒有私鑰,DER 編碼二進制格式的證書文件,以 .cer 作為證書文件后綴名。
  • Base64 編碼的證書(PEM):證書中沒有私鑰,Base64 編碼格式的證書文件,也是以 .cer 作為證書文件后綴名。

准備工作

  • 環境:win10
  • 軟件:openssl、tomcat
  • 准備工作:tomcat環境配置(包括jdk);下載openssl工具到本地,解壓后,在bin目錄下新建三個文件夾,分別為ca、client、server。

注意:下文采取的是SSL雙向認證,故制作了客戶端的證書,如果想要實現單項認證,則只需CA證書及server證書。

證書制作

生成CA證書

  • 創建私鑰 genrsa -out ca/ca-key.pem 1024
  • 創建證書請求 req -new -out ca/ca-req.csr -key ca/ca-key.pem
  • 自簽署證書 x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
  • 轉換證書格式 pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12

生成server證書

tips : common name 填 寫 本 地 IP 地 址 !【圖中箭頭部分】

  • 創建私鑰 genrsa -out server/server-key.pem 1024
  • 創建證書請求 req -new -out server/server-req.csr -key server/server-key.pem
  • 自簽署證書 x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
  • 轉換證書格式 pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12

生成client證書

  • 創建私鑰 genrsa -out client/client-key.pem 102
  • 創建證書請求 req -new -out client/client-req.csr -key client/client-key.pem
  • 自簽署證書 x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
  • 轉換證書格式 pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12

根據ca證書生成jks文件

tips : 換!路!徑!【jdk的bin目錄下輸入命令】

  • 在openssl的bin目錄下新建jks文件夾 keytool -keystore C:\OpenSSL-Win64\bin\jks\truststore.jks -keypass 222222 -storepass 222222 -alias ca -import -trustcacerts -file C:\OpenSSL-Win64\bin\ca\ca-cert.pem

Apache Tomcat驗證

配置Tomcat

  • 修改tomcat的配置文件(conf/server.xml)添加一個新的connector,內容如下(tips:注:keystoreFile對應server端的jks文件,keystorePass對應其密碼)
    tips : 兩 個 storefile 的 路 徑 一 定 要 對 ,不 然 會 落 淚
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
    maxThreads="150" scheme="https" secure="true" 
    clientAuth="true" sslProtocol="TLS" 
    keystoreFile="C:\OpenSSL-Win64\bin\server\server.p12" keystorePass="changeit" keystoreType="PKCS12"  
    truststoreFile="C:\OpenSSL-Win64\bin\jks\truststore.jks" truststorePass="222222" truststoreType="JKS"/>

在瀏覽器導入證書

  • 將ca.p12,client.p12分別導入到IE中去(打開IE->Internet選項->內容->證書)。
    ca.p12導入至受信任的根證書頒發機構,client.p12導入至個人。

驗證

  • 訪問https://192.168.0.6:8443,提示是否確認證書,確認后成功訪問,點擊小鎖查看證書。

參考博客

Windows下使用OpenSSL生成自簽證書
CA認證過程及https實現方法之Linux


免責聲明!

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



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