如何產生自簽署 OpenSSL 證書
1. 產生私鑰 pem
通過這個指令可以直接產出來
openssl genpkey -algorithm RSA -out private_key.pem
2. 憑證請求 csr (Certificate Signing Request)
openssl req -new -key private_key.pem -out request.csr
這邊其實很多資訊可以跳過,只是要注意的是網域不能亂填
3. 簽署該請求 cer/crt
openssl x509 -req -days 365 -in request.csr -signkey private_key.pem -out certificate.cer
這邊簽署本來應該是由CA做的,簽署用的私鑰可以是其他私鑰,只是方便用同一個
4. 打包成 pfx 檔案
openssl pkcs12 -export -out certificate.pfx -inkey private_key.pem -in certificate.cer
最後一個步驟是把簽署完畢的 cer 檔案跟原本的私鑰合併成完整的證書
到這邊就完成了,注意自簽署的證書放的位置
公鑰cer要放到【客戶端::/本機/受信任的憑證授權單位】才能起作用
私鑰也就是那個 pfx 沒影響放哪都行,不過建議放到【伺服端::/本機/個人】比較好找
檔案關係圖
最後整理一下各個檔案的關係,提示一下上面的教學因為是自簽的所以用同一份私鑰,實際上整個過程是會出現兩份私鑰的。
公鑰的關係圖
- certificate.cer # 證書公鑰
- private_key_ca.pem # CA簽證用的私鑰
- request.csr # 簽證請求
- private_key_company.pem # 公司私鑰
- information.txt # 公司信息
最後再將CA簽署後的文件,也就是證書公鑰跟自己私鑰合併打包就成了 pfx 檔案了。
整個認證的流程就是網上有一個大家一起認可的伺服器,這個伺服器是由CA管理的,你必須付錢給CA才能把公鑰放上去,CA則負責審核公司是不是正常的公司。
而像 Chrome 之類的軟體會預設放行CA審過的清單,沒審過就跳錯誤說這網站沒認證哦你真的要連接嗎? 這樣的信息封鎖。
所以私簽的證書過不了這關會被欄下來,解法就是私簽證書要自己安裝到系統指定的位置,這樣就可以通過了。
最終只要保留兩份檔案就好
- certificate.cer # 證書公鑰
- certificate.pfx # 證書私鑰
注意這裡出現的所有私鑰都是不參與資料傳輸加密的,是資料傳輸開始前的認證而已。