網站名稱:SSL For Free
網站鏈結:https://www.sslforfree.com/
1. 開啟 SSL For Free 網站後,直接在上方填入你要申請 Let’s Encrypt 憑證的網域名稱,可以用空白來分隔不同的網址,例如:使用「tw.3study.com www.learning.org.tw www.oxfordgate.com.tw」,填入後點選右邊的「Create Free SSL Certificate」繼續。
2. 為了確定這個網域名稱使你所有,必須要作站台驗證的動作,他提供了兩種驗證方式,若你的網站有開起 FTP 功能的話,可使用「Automatic FTP Verification」來輸入 FTP 相關資訊自動完成驗證,若你擔心資訊安全的話,可以用手動驗證的方式「Manual Verification」,必須自己下載驗證檔案,按照網站上的說明上傳到主機,另外還有提到站台若有設定防火牆,請必須將 IP:66.133.109.36 加入允許連線的白名單,避免驗證失敗,都沒有問題的話就點選下方的「Manually Verify Domain」繼續。
3. 點選網站上提供的檔案下載鏈結,依照說明順序建立兩層資料夾,將檔案放進去即可。記得要按下圖第 5 步驟的鏈結來看看能否正常讀取檔案,如果不行,代表你的路徑可能錯誤,總之呢要讓鏈結都能正常開啟,使SSL For Free能夠正常驗證你的站台。
或者直接在 IIS 平台的站台上點選進入「MIME 類型」。
加入「副檔名: . MIME 類型:text/plain」即可。
如果沒有設定好 MIME 類型,驗證鏈結是無法正常開啟的喔。
然後對應的網站根目錄中 建立 名為 「.well-known.」的目錄
接下來在[ .well-known.」的目錄 中再建立 「acme-challenge」的目錄
然後把對應的 下載下來的驗證檔案放在對應的網站裡頭
4. 確定驗證連結沒有問題後,再點選最下方的「Download SSL Certificate」,通過驗證後,SSL For Free 就會開始產生 SSL 憑證。
5. 產生憑證後,就能看到密密麻麻的憑證檔案資訊。不過在下在憑證之前,請先注意有著「Get Notified of Expiration」,請先行設定一組 Email 和密碼,這個功能即你申請的憑證在過期前會自動 Email 通知你,提醒你要記得更新憑證以免錯過有效期間。
6. 設定好通知後,點選最下方點選「Download All SSL Certificate Files」打包所有憑證檔並下載下來,
7. 解壓縮後可以取得一個私密金鑰(Privacy Key)、CA_bundle.crt 和 certificate.crt 三個檔案。
8. 產生的憑證是 .crt 非 .pfx,IIS 憑台只能使用 .pfx 憑證檔,所以這時候就需要透過工具做轉換,我們到 OpenSSL for Windows 去下載 OpenSSL 回來,並把他安裝完成。
9. 安裝完成後,開啟命令提示字元,透過下面的指令來執行格式轉換,過程中,OpenSSL 會要我們輸入一個保護 SSL 憑證的密碼(密碼在後面 IIS 匯入時會用到):
注意:指令中 D:\Downloads\sslforfree\ 是電腦的路徑,請更改你放憑證檔的路徑。
C:\OpenSSL-Win64\bin\openssl pkcs12 -export -out D:\Downloads\sslforfree\certificate.pfx -inkey D:\Downloads\sslforfree\private.key -in D:\Downloads\sslforfree\certificate.crt -certfile D:\Downloads\sslforfree\ca_bundle.crt
然後設定密碼
10. 執行完畢後,PKCS#12 憑證檔 certificate.pfx 就會產生在我們指定的目錄下面(檔案類型為個人資訊交換)。
11. 我們只要把PKCS#12 憑證檔上傳到 IIS 的站台,請至 IIS 點選「伺服器憑證」。
12. 點選右邊動作「Import …」。
13. 在匯入憑證視窗,點選「…」,選擇你產生出來的 certificate.pfx 憑證檔。並輸入之前使用 OpenSSL 轉檔時的密碼。
憑證放好囉。
14. 站台新增繫結,請先點選你的站台,在右邊動作點選「繫結」,於站台繫結點選「新增」。
15. 類型選擇「https」,SSL 憑證就直接點選你剛剛放入的憑證。
這裡請注意,你會發現主機名稱無法設定,因為整個 IIS 只能跑一組 SSL 憑證,不管是有多少個站台就只能跑一組!主機名稱可以用其他方式設定,這個小編會在另一篇說明,但憑證就只能跑一組,所以有此需求的朋友記得我在前面第一個步驟就有提到「若你有多個子網域也都是要一併申請進去」,這樣你在多個網預設定時才不會有問題。
在這個步驟你會發現為何 https 無法輸入主機名稱(網域),且若多個站台都啟用 https 時,甚至會有出現站台被停用的狀況。
原因是因為連接埠指定了 443,當你設定另一個網站的 https 連線時,也是 443 埠,因此兩個在搶同一個埠。解決方法很簡單,修改 IIS 設定檔即可,方法如下:
用記事本打開 C:\Windows\system32\inetsrv\config\applicationHost.config
從內容中,找到你要設定https 的站台設定內容:(大概像如下的設定)
看到 https 後面那個 * 是表示IP位址未指派,443 是埠號,你會發現 443: 後面什麼都沒有,就是表示沒有主機名稱,我們就把整個網域加進去吧。
<binding protocol=”https” bindingInformation=”*:443:www.learning.org.tw” />
完成後存檔,啟動站台就可以正常囉,注意:當你每次更換憑證時一定會要到 IIS 變更 SSL 憑證,那麼就會變動到 IIS 設定檔 applicationHost.config,所以每次更換憑證時,記得要回到設定檔在按上述步驟重新加上去喔(不然站台又會再跟你鬧革命不啟動)。
16. 對外防火牆開好 443 port 後,就可以用 https:\\ 瀏覽你的站台囉。
發表評論
此篇評論