若是有透過政府憑證入口網申請 TLS 憑證的話https://gtlscaweb.nat.gov.tw/GCP/views/SAPSSL/SSL01.html
因原始文件未說明 NGINX 伺服器的設定方式,這邊留下設定筆記。
步驟:NGINX 伺服器設定方式
1.將取得的 CER 憑證檔轉成 CRT
openssl x509 -in XXX.cer -inform DER -out XXX.crt
2.下載 GTLSCA憑證串鍊,以產生憑證鍊
- https://gcp.nat.gov.tw/views/AnnDownload/download_3-1.html
- https://gtlsca.nat.gov.tw/download/GTLSCA_All.zip
cat XXX.crt GTLSCA.crt eCA1_to_eCA2-New.crt ROOTeCA_64.crt > fullchain.pem
憑證鏈順序:
- 服務器證書 (
XXX.crt
) - 中間證書 (
GTLSCA.crt
,eCA1_to_eCA2-New.crt
) - 根證書 (
ROOTeCA_64.crt
)
3. 設定 NGINX Site config
ssl_certificate /etc/nginx/cert/gca/fullchain.pem; # 憑證鍊
ssl_certificate_key /etc/nginx/cert/gca/www.key; # 私鑰
然後重啟服務
sudo service nginx reload
以命令或是從 https://www.ssllabs.com/ 校驗
openssl s_client -connect www.yourdomain.edu.tw:443
加碼1: Webmin 伺服器安裝方式
將預設的自簽憑證更名後,將憑證鍊與私鑰合併在同一個檔案
cd /etc/webmin
sudo cp /etc/nginx/cert/gca/fullchain.pem miniserv.pem
sudo bash -c 'cat /etc/nginx/cert/gca/www.key >> miniserv.pem'
sudo ./restart
加碼2: 產製 SAN 憑證的 CSR 憑證請求檔
假設這張 SAN 憑證要給不同 DN 使用
www.yourdomain.edu.tw、www2.yourdomain.edu.tw
建立一個 server.cnf 檔案內容如下
[ req ]
distinguished_name = req_dn
req_extensions = req_ext
prompt = no
[ req_dn ]
C = TW
ST = Taiwan
L = Taipei
O = YOUR ORG
CN = www.yourdomain.edu.tw
[ req_ext ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = www.yourdomain.edu.tw
DNS.2 = www2.yourdomain.edu.tw
以 openssl 產生私鑰及 CSR 憑證請求檔
openssl req -nodes -newkey rsa:2048 -nodes -keyout server.key -out server.csr -config server.cnf