使用OpenSSL生成證書並配置Https
1、密鑰、證書請求、證書概要說明
在證書申請簽發過程中,客戶端涉及到密鑰、證書請求、證書這幾個概念。我們以申請證書的流程說明三者的關系。客戶端(相對於CA)在申請證書的時候,大體上有三個步驟:
第一步:生成客戶端的密鑰,即客戶端的公私鑰對,且要保證私鑰只有客戶端自己擁有。 第二步:以客戶端的密鑰和客戶端自身的信息(國家、機構、域名、郵箱等)為輸入,生成證書請求文件。其中客戶端的公鑰和客戶端信息是明文保存在證書請求文件中的,而客戶端私鑰的作用是對客戶端公鑰及客戶端信息做簽名,自身是不包含在證書請求中的。然後把證書請求文件發送給CA機構。 第三步:CA機構接收到客戶端的證書請求文件後,首先校驗其簽名,然後審核客戶端的信息,最後CA機構使用自己的私鑰為證書請求文件簽名,生成證書文件,下發給客戶端。此證書就是客戶端的身份證,來表明用戶的身份。
2、安裝OpenSSL
OpenSSL安裝有兩種方式,一種編譯安裝:https://bbs.csdn.net/topics/392193545?page=1
一種直接下載安裝包安裝(選擇對應操作系統版本,文件大的那個): https://www.sslzhengshu.com/article/post-367.html
安裝完成後,可以設置環境變量,也可以不設置環境變量,設置環境變量的好處是:在任意位置通過cmd命令行窗口都可以執行openssl命令,而沒有設置環境變量則需要進入OpenSSL安裝目錄進行命令行的操作
3、生成證書
首先進入cmd 進入openssl的安裝目錄(以配置過環境變量的可以省略這一步)
用戶證書的生成步驟:
生成私鑰(.key)-->生成證書請求(.csr)-->用CA根證書簽名得到證書(.crt)
1.建立文件夾
在openssl安裝目錄中新建 demoCA 目錄,再在 demoCA目錄內新建 newcerts目錄
並且在 demoCA 文件夾內新建一個空的 index.text 文件
再建立一個 serial文件 裏面寫 01
2.生成根證書
#生成私鑰
openssl genrsa -des3 -out root.key 1024
輸入命令,回車 會提示輸入密碼,我設定的密碼是123456,之後只要是提示輸入密碼的,都默認是123456,同時可以看到openssl安裝目錄下多了一個root.key文件
# 生成根證書 並且 自簽名 openssl req -new -x509 -key root.key -out root.crt -config C:\OpenSSL-Win64\bin\openssl.cfg
接下來會提示輸入密碼,還輸入默認的密碼就可以,接下來還會讓輸入一些基本信息
但是只有紅框部分的信息才是最重要的,其他都可以忽略不填,填完之後,發現openssl目錄下又多了一個root.crt文件
2、服務端證書生成
#生成私鑰
openssl genrsa -des3 -out server.key 1024
同樣也會提示輸入密碼
#生成服務端證書 openssl req -new -key server.key -out server.csr
提示輸入密碼,提示完成之後,又讓你填寫一大堆信息,跟生成root.csr是一樣的,需要註意的一點是,這裏填寫的信息需要跟生成root.csr填寫的信息要一致
這個時候,我們看openssl的安裝目錄,發現多了兩個文件,一個server.key 一個server.csr ,
但是為什麽這個server.csr為什麽跟root.csr的圖標不一樣呢?(當然不僅僅是因為後綴名不一致的問題),主要是因為因為root.crt是經過簽名的(自簽名),而server.csr沒有經過簽名
接下來要做的就是讓root.crt和root.key給server.csr進行簽名(其實這個過程就是模擬,CA機構進行簽名【那個要收費】)
3、使用root.crt和root.key給server.csr進行簽名
#使用根證書進行簽名 openssl ca -in server.csr -out server.crt -cert root.crt -keyfile root.key
使用OpenSSL生成證書並配置Https