SSL 憑證申請流程

Jerry Chen
5 min readMar 19, 2020

--

關於 SSL 憑證有很多價格區間,甚至還有網站提供免費的 SSL 服務,像是 Let’s EncryptSSL For Free 都是免費 SSL 服務的供應商,聽起來用免費的 SSL 憑證就好了幹嘛選擇付費的 SSL 憑證呢?

其實免費的 SSL 憑證缺點除了需要週期性更換之外 (例如 Let’s Encrypt 需要每 90 天手動更換一次憑證),還有對於使用者的賠償機制,SSL 價格影響最大的是 SSL 帶來的公信力與賠償機制,SSL 認證的級別越高就越有公信力,相對的賠償金額也更高。

目前網域最常用的認證類性為 OV (組織認證),另外還有 DV (域名認證)以及 EV (延伸認證)等認證種類,DV 是最容易入手的認證方式,價格便宜、手續簡單,是個人網站或部落格常用類型。

比較不一樣的是 EV 認證,EV 認證規範比較嚴格,價格也比較高,但是可以讓網站顯示公信力的象徵綠色標章 (Green Bar),通常大型機關都是使用 EV 類型的認證。

SSL 憑證檔案

憑證公鑰 server.crt 檔案內容:BEGIN CERTIFICATE 、END CERTIFICATE

憑證私鑰 server.key 檔案內容 :BEGIN RSA PRIVATE KEY、END RSA PRIVATE KEY

中繼憑證 server.csr 檔案內容:連續三組BEGIN CERTIFICATE、END CERTIFICATE

SSL 憑證申請流程

  1. 產生憑證私鑰 server.key:openssl genrsa -out server.key 2048,產生後視窗會顯示 Enter PEM pass phase:確定是否要設定私鑰匙密碼,這會用在啟用憑證,不輸入則直接 enter
  2. 產生中繼憑證 server.csr:openssl req -new -key server.key -out server.csr,這行指令會要求輸入申請資訊
    Country Name:TW
    State or Province Name:按 enter 略過
    Locality Name:城市(如:Tainan)
    Organization Name:組織名稱(如:CHT)
    Organizational Unit Name:單位名稱(如:Information)
    Common name:網域名稱(如:test.com)
    Email address:伺服器管理者電子郵件 (如:test
    @gmail.com)
    challenge password:按 enter 略過
    optional company name:按 enter 略過
  3. 檢查中繼憑證 openssl req -noout -text -in server.csr
  4. 接下來就等憑證中心將憑證公鑰 server.crt 發給你
  5. 在 httpd.conf 將憑證檔案路徑對應起來

SSLEngine On
SSLCertificateFile <檔案路徑>/server.crt
SSLCertificateKeyFile <檔案路徑>/server.key
SSLCertificateChainFile <檔案路徑>/ca.csr

* windows憑證私鑰不可加密

其他指令

輸出 .pfx 憑證
openssl pkcs12 -in server.pfx -nokeys -password “pass:vEryComPleXPw” -out — 2>nul | openssl x509 -out server.crt

可選參數
-nokeys 代表你不要輸出 私密金鑰檔 (僅輸出憑證檔案)
-nocerts 代表你不要輸出 伺服器憑證檔 (僅輸出金鑰檔案)
-nodes 是 No DES 的意思,代表你想輸出一個沒有密碼保護的 私密金鑰檔

轉換 .cer 憑證
openssl x509 -in server.cer -inform DER -out server.crt

驗證憑證,這三行指令輸出的內容將會相同
openssl pkey -in server.key -pubout -outform pem | sha256sum
openssl x509 -in server.crt -pubkey -noout -outform pem | sha256sum
openssl req -in server.csr -pubkey -noout -outform pem | sha256sum

檢查憑證
openssl verify server.crt

查看 crt
openssl x509 -in server.crt -text -noout

查看 cer
openssl x509 -in server.cer -inform DER -text -noout

查看 private key
openssl rsa -in server.key -text -noout

查看 csr
openssl req -in server.csr -text -noout

查看、檢查 csr 內容
openssl req -in server.csr -text -verify -noout

檢查 csr 與 private key
openssl req -in server.csr -noout -verify -key server.key

檢查 private key
openssl rsa -noout -text -check -in server.key

檢查 server.pfx
openssl pkcs12 -info -in server.pfx

檢查 server.jks
keytool -v -list -storetype jks -keystore server.jks -storepass 123456

--

--

Jerry Chen
Jerry Chen

Responses (1)