GitHub Page 使用自訂網域並搭配 Let's Encrypt 免費 SSL 教學

以往 GitHub Page 若要使用自訂網域並且走HTTPS協議,就必須使用 CloudFlare 的免費 SSL 才能達成,不過 GitHub 5月1日宣布現在起所有的自訂網域都能擁有免費的 Let's Encrypt SSL 憑證,就像 Blogger 也能在自訂網域套上Let's Encrypt,不過不一樣的是 GitHub 不像 Google 點一下就自動幫你設定,雖然官方的說明寫了一大堆,當時我也看了一陣子搞懂,但實際操作起來只要有 DNS 設定的基礎不會太困難

本篇文章使用 CloudFlare 示範: https://www.cloudflare.com

1.登入 CloudFlare,左邊選擇 CNAME,Name 的部分如果你想使用 domain.com 作為GitHub Page 的網址,就填入@,如果想用 blog.domain.com 就填 blog,Domain name 輸入 使用者名稱.github.io

GitHub 推薦使用 CNAME 紀錄,不過要注意的是大多數的 DNS 代管服務的不支援在根網域使用 CNAME 紀錄,也是為什麼我用 CloudFlare 的原因,因為這是我見過唯一一個可以在根網域上使用 CNAME 的 DNS 的代管服務
如果你的 DNS 代管服務無法在根網域上使用 CNAME,那麼可以使用 A 紀錄指向 GitHub 的 IP: https://help.github.com/articles/setting-up-an-apex-domain/#configuring-a-records-with-your-dns-provider

2.再來加上一條 CAA 紀錄,這樣 Let's Encrypt 才能頒發憑證給你的網域。左邊選擇 CAA,Name 的部分跟上方的 CNAME 一樣,若要使用根網域申請憑證就輸入@,若想使用 blog.domain.com 就輸入 blog,Configure 點開後會有兩個選項,Tag 選擇 Only allow specific hostnames,Value 輸入 letsencrypt.org。(Let's Encrypt 官方說明)

3.最後是 GitHub Repository,在設定的地方找到 GitHub Pages,Custom domain 填上你要的網域並點 Save 儲存,正常剛設定完的情況下 Enforce HTTPS 的部分會是灰色不能打勾的,需要等待頒發完憑證才能打勾,打勾後這個 Repository 的頁面就會強制使用 HTTPS 傳輸

留言