星期三, 1月 16, 2019

SSL憑證申請到安裝

申請SSL憑證


1. 先思考需要的是免費憑證還是付費憑證,大企業網站比較建議採用付費的憑證,如果只是個人網站則可以考慮免費,本篇採用的是免費憑證。
2. 連到 SSL For Free
3. 在 enter your website to secure 的地方輸入要申請憑證的網址,例:test.com.tw,然後點擊 Create Free SSL Certificate

4. 進到驗證網域的頁面,這頁主要是在確認你是否為網站的擁有者,是擁有者才會發憑證給你。驗證網域有三種方式,由左到右依序是:

  • FTP驗證
  • 檔案驗證
  • DNS驗證
三種方法選一種即可。這篇採用檔案驗證,點擊 Manual Verification。

5. 點擊 Manually Verify Domain 按鈕,按鈕下方會跑出進行檔案驗證的步驟。
6. 點 Download File #1 下載驗證檔。
7. 在網站的根目錄建一個 .well-known 資料夾。通常直接新增會出現「您必須輸入檔名」的錯誤,必須使用命令提示字元來新增。指令為:mkdir .well-known參考文章
8. 在 .well-known 目錄底下再新增一個 acme-challenge 資料夾。
9. 把 步驟 6. 下載的驗證檔放在 acme-challenge 資料夾裡。
10. 先測試看看輸入網址能不能連到那個檔案,例:http://test.com.tw/.well-known/acme-challenge/{驗證檔名}。如果是 404 Not Found,是因為路徑有個 . 的緣故,可以在 Web.config 加一行設定 <mimeMap fileExtension="." mimeType="text/plain" />

還有一種狀況也是測試失敗,雖然測試網址能顯示內容,卻不是出現跟檔案名稱相符的英數字,而是一堆符號圖形跟漢字之類的亂碼,這表示該檔案並沒有被正確開啟。
  • 打開 IIS,找到站台。
  • 點 MIME 類型。
  • 按右鍵點新增,副檔名:.,MIME 類型:text/plain
  • 按確定,再測試一次網址是否正常顯示


11. 測試成功後點擊 Download SSL Certificate。
12. 驗證成功就會產生憑證,注意這憑證有效期只有 90天,點擊 Download All SSL Certificate Files 就可以全部下載。

參考連結:John Wu's Blog

產生給 IIS 的憑證

1. IIS 可接受的憑證必須是 .pfx 的檔案,因此必須先用 OpenSSL 產生 pfx 檔。如果沒有安裝過 OpenSSL 必須先下載並安裝。Windows 版本:Shining Light Productions 或 OpenSSL for Windows - GnuWin32
2. 然後將三個下載的憑證檔案 certificate.crt、private.key、ca_bundle.crt 搬到 OpenSSL 資料夾底下的 bin 資料夾內。
3. 開啟命令提示字元,必須用系統管理者身分開啟,開啟方式可參考這篇
4. 切換目錄到 OpenSSL 的 bin 底下。
5. 輸入指令 openssl pkcs12 -export -in certificate.crt -inkey private.key  -certfile ca_bundle.crt -out test.pfx
6. 輸入密碼,兩次,必須記住密碼很重要
7. 如果沒有錯誤訊息,就可以回到 OpenSSL 底下 bin 資料夾裡找剛剛產生的 .pfx 檔。



安裝 SSL憑證

1. 開啟 IIS
2. 選取 IIS 站台首頁
3. 點 伺服器憑證
4. 點 匯入
5. 選要匯入的 .pfx 檔案,輸入密碼,按確定。
6. 選要綁 SSL憑證的站台,右鍵選繫結。
7. 點 新增,類型選 https,主機名稱填寫要綁憑證的網址,然後選對應的 SSL 憑證,按 確定。

參考連結:John Wu's Blog


如果有兩個以上的網站

1. 在 SSL For Free 首頁 enter your website to secure 的地方輸入要申請憑證的網址,例:test1.com.tw test2.com.tw,網域與網域之間用半形空白分隔,如果有子網域也要一起申請,然後點擊 Create Free SSL Certificate


2. 驗證方式與單一網域的方式相同,所有網域一次驗證完成,如果採用檔案驗證,務必先確認每個檔案都能正確開啟,再點擊 Download SSL Certificate。

3. 開啟 IIS 匯入新的憑證,然後兩個網站都綁同一張憑證,然後測試網站是否都能用 https 開啟。但實際測試後發現雖然兩個網站都正常,test2.com.tw 的憑證卻是顯示發給 test1.com.tw 的,尚不確定這樣算不算正常。

參考連結:免費資源網路社群

4. IIS 8 以上,每個站台都可以設定自己的 443 Port,但 IIS 7 預設只能跑一組,就會需要做一些額外的設定,請參考 小YAのIT技術筆記




沒有留言: