1. 到[政府GCA申請入口網](https://gcp.nat.gov.tw/views/Description/desc.html),點擊TLS憑證申請 ![](https://hackmd.io/_uploads/ByQaxe003.png) 2. 選擇發文申請,或是請承辦以插卡申請 ![](https://hackmd.io/_uploads/Bk94bl0Rh.png) 3. 政府機關單位識別碼,點擊右側可以查詢 ![](https://hackmd.io/_uploads/Hk0sWxCAh.png) 輸入網域名稱 ![](https://hackmd.io/_uploads/Hk31GeA03.png) 填寫資料(承辦的資料) ![](https://hackmd.io/_uploads/B1ulGxA0h.png) 憑證請求檔上傳,製作過程參考步驟4 ![](https://hackmd.io/_uploads/r1VMfeAA3.png) 4. 憑證請求檔,在linux和windows中,都可以透過以下指令建立: ``` a. 製作私鑰: openssl genrsa -out server.key 2048 如果想要產生一組密碼短語(passphrase)來加密私鑰,可增加參數 -des3: openssl genrsa -des3 -out server.key 2048 b. 使用步驟1產生的私鑰server.key產生憑證請求檔(server.csr) openssl req -new -key server.key -out server.csr 以上a、b兩個步驟可以簡化為一個: openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr 生成的server.csr,要在步驟3的請求檔上傳。 生成的server.key要保存好,請勿外流與遺失,遺失則無法完成後續的步驟。 在windows中,也可以透過IIS的產生csr檔,而且IIS會直接幫你把產生的私鑰保存在系統內,等到憑證下來之後,可直接完成憑證要求。(細節待補) ``` 5. 收到**政府伺服器數位憑證管理中心**的信件: ![](https://hackmd.io/_uploads/S13VDg0Rh.png) 將憑證序號複製起來,點擊此***[網頁的URL](https://gtlsca.nat.gov.tw/GCP/views/PEXE_Query/Query.CEXE)***,將剛剛複製的憑證序號貼上, ![](https://hackmd.io/_uploads/ryP1DgRAh.png) 輸入後查詢 ![](https://hackmd.io/_uploads/HkPKDlCA2.png) 即可下載憑證。 下載的檔案名稱會是剛剛的**憑證序號.cer** 副檔名是cer,通常是windows下產生的,也是給windows使用的,在linux下需轉換成crt。一般來說cer是二進位檔案,無法直接看,crt則是會以 ``` -----BEGIN ***----- 開頭 -----END ***----- 結尾 ``` 可以使用以下指令進行轉換 `openssl x509 -in xxxx.cer -inform DER -out xxxx.crt` 5. 中繼憑證 至GTLSCA網站下載已經製作好的憑證串鏈檔案,格式為PEM編碼,下載網址為 https://gtlsca.nat.gov.tw/download/eCA1_GTLSCA.zip 將下載的eCA1_GTLSCA.zip 解壓縮得到 eCA1_GTLSCA.crt 6. 將自己的憑證(xxxx.crt)與中繼憑證(eCA1_GTLSCA.crt)串連 cat 3E553212115F609F36B9C106A3893AC7.crt eCA1_GTLSCA.crt > ~/server.pem 7. 設定nginx: ``` ssl_certificate server.pem 的路徑; ssl_certificate_key server.key 的路徑; ``` 其中 server.key 就是步驟4中產生的私密金鑰,server.pem就是串聯之後的憑證。 完成之後需要重新啟動nginx服務: ``` sudo service nginx reload ``` 如果私鑰和政府頒發回來的證書(內含與這個私鑰配對的公鑰)不match,nginx可能會無法啟動,他會告訴你的私鑰有問題。 參考資料:https://blog.miniasp.com/post/2018/04/21/PKI-Digital-Certificate-Format-Convertion-Notes