如何在 Nginx 安裝香港郵政電子核證伺服器 SSL e-Cert

我們協助客戶在 Nginx 網頁伺服器上,安裝香港郵政電子核證伺服器 SSL e-Cert。香港郵政提供 PIN envelope 參考號碼(9位數字)和 e-Cert PIN 密碼(16位數字)給客戶。本文以 www.linuxharbour.com 為主機名稱例子。

我們首先使用 OpenSSL 來建立 Certificate Signing Request (CSR)。

$ openssl req -new -newkey rsa:2048 -nodes -keyout linuxharbour.key -out linuxharbour.csr
Generating a 2048 bit RSA private key

…………………………………+++
..+++
writing new private key to 『linuxharbour.key』
—–
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]:HK
State or Province Name (full name) [Some-State]:Hong Kong
Locality Name (eg, city) []:Hong Kong
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linux Harbour
Organizational Unit Name (eg, section) []:Web Team
Common Name (e.g. server FQDN or YOUR name) []:www.linuxharbour.com
Email Address []:editorial@linuxpilot.net

Please enter the following 『extra』 attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
然後我們到香港郵政電子核證 e-Cert (伺服器) CSR 提交網頁,輸入 e-Cert 主機名稱(hostname)、參考號碼(reference number)和 PIN 密碼。到下一頁,我們需要確認登記人資料是否正確。
確認登記人資料後,我們複製 CSR 檔案內容(例子:linuxharbour.csr)到 CSR 提交網頁的文字欄中。
然後網頁會顯示將為你建立的 SSL 證書資料,核對後再接納證書資料。
在接納證書資料後,香港郵政網站會為你的主機名稱產生 SSL e-Cert 電子核證,你可以下載「Hongkong Post e-Cert (Server) 」證書(第一項),同時好好保存你使用 OpenSSL 所建立的 CSR 和鑰匙檔案。
產生 e-Cert 後,我們在網頁伺服器加入相關 SSL 設定。以下介紹如何為 Nginx 網頁伺服器加入設定。如果已安裝 ISPConfig 3,可直接參考 ISPConfig 3 設定一節。
在 Nginx 為網站設定香港郵政 e-Cert
首先建立亦複製 e-Cert 內容到 /etc/ssl/certs/linuxharbour.pem 檔案(例子:linuxharbour.pem),e-Cert 內容應該以  —–BEGIN CERTIFICATE—– 開頭。然後搬移早前使用 OpenSSL 產生的鑰匙檔案到 /etc/ssl/private 目錄裡。
$ mv linuxharbour.key /etc/ssl/private
在 Nginx 設定中,在網站區段加入以下設定,即 location { … } 內,然後重新載入 Nginx 就成了。
listen *:443 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/ssl/certs/linuxharbour.pem;
ssl_certificate_key /etc/ssl/private/linuxharbour.key;
在 ISPConfig 3 為網站設定香港郵政 e-Cert
複製三個 SSL 檔案內容到 SSL 標籤的「SSL Key」、「SSL Request」、「SSL Certificate」,然後儲存設定。
「SSL Key」內容以 —–BEGIN PRIVATE KEY—– 開頭。
「SSL Request」內容以 —–BEGIN CERTIFICATE REQUEST—– 開頭。
「SSL Certificate」內容以 —–BEGIN CERTIFICATE—– 開頭。
常見問題(FAQ)
問題: 如果用家瀏覽器出現 SEC_ERROR_UNKNOWN_ISSUER 錯誤,該如何解決?
答案: 香港郵政證書核證根證書(Root CA cert)沒有預設安裝在某些瀏覽器或平台上(註:不是你的證書),有關這情況亦可參考 GovHK Online Services – Information Security 的 Q4。你可以下載 Hong Kong Post Root CA 1 根證書及 Hong Kong Post e-Cert CA 1 – 15 中繼證書,然後參考下列指令來結合你的證書。
$ cat root_ca_1_pem.crt ecert_ca_1-15_pem.crt cert0000000.crt > hkpostca.crt
 (以你的證書號碼來取代 000000000)
然後複製新證書 hkpostca.crt 內容到 ISPConfig 3 的 SSL certificate 文字欄並儲存。
而 Apache 用家亦可參考香港郵政的用家指南: Hong Kong Post e-Cert (Server) User Guide for Apache

 

Related posts

Sammy Fung

Sammy 是 Linux 技術顧問,擁有 20 年 Linux 技術經驗。