使用OpenSSL生成自簽名證書

在部署HTTPS站點的時候,一個必不可少的步驟是申請證書。對於內網程序來說,申請證書有的時候並不方便,此時也可以通過自簽名的方式自己簽發證書。雖然這種證書瀏覽器認爲不方便,但還是能享受到加密防護和http2帶來的好處的。本文這裏主要介紹下如何使用OpenSSL自簽名證書。

下載OpenSSL

對於Windows來說,網上有已經打包了的二進制文件下載,只是自簽名證書話,下載這個只有幾兆的安裝包即可。

另外,大部分Windows開發人員都是安裝了Git For Windows的,此時在C:\Program Files\Git\mingw64\bin目錄下也是有一個已經編譯了的OpenSSL的,直接用這個更加方便。

 

生成證書

如下是一個生成證書的簡單示例

  openssl req -newkey rsa:2048 -nodes -keyout d:\key.pem -x509 -days 365 -out d:\certificate.pem

它主要包括了證書的輸出位置和有效時間, 執行命令後,並不會立即生成證書,而是會在交互模式下繼續提示輸入一些信息,主要是證書的一些基本信息,如下所示:

Generating a RSA private key
................+++++
................+++++
writing new private key to 'd:\key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:

信息輸入完後就會生成證書文件,證書文件都是文本文件,可以通過記事本查看。其中key.pem是私鑰,需要保護好,而certificate.pem則是證書相關的一些信息,可以通過openssl命令查看

  openssl x509 -noout -text -in certificate.pem

 

轉換爲pfx格式

在.net core程序部署的時候,往往採用的是pfx格式的證書,pfx文件將證書和私鑰打包在一起,並通過一個密鑰來保護私鑰,這樣可以比較方便的保護私鑰,也簡化了部署。

我們也可以通過open ssl命令將剛纔生成的證書轉換爲pfx格式,轉換過程中會提示輸入密碼。

  openssl pkcs12 -export -out d:\ca.pfx -inkey d:\key.pem -in d:\certificate.pem

我們從第三發籤發機構簽發的證書也可以用這種方式轉換爲pfx格式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章