SSL 憑證每年到期前,都得跟主機商續約,或是重新跑一次安裝流程。這件事其實有免費的解法:把網站接上 Cloudflare,憑證的申請、安裝、續期全部交給它處理,不用付任何費用。
整個過程大約半小時到一小時,做一次就能用很多年。
一、Cloudflare 是什麼,為什麼能提供免費 SSL
Cloudflare 是目前全球規模數一數二的 CDN 與網路安全服務商,機房節點超過三百個。它的服務方式和一般主機商不太一樣:你不需要搬家,網站還是放在原本的主機上,只是把網域的 DNS 交給它代管。之後訪客連你的網站,流量會先經過 Cloudflare 的節點,再轉到你的主機,業界稱這種架構為「反向代理」。
因為流量都從它那裡過,很多事情它就能順手幫你做掉:HTTPS 憑證由它簽發和續期、靜態檔案在離訪客最近的節點快取、攻擊流量在到達你主機之前就被擋下。免費 SSL 不是促銷手段,而是這個架構本來就能提供的東西:Cloudflare 從 2014 年推出 Universal SSL 至今,一直是免費方案的標準配備。
二、免費方案有哪些東西
先講清楚:Cloudflare 的免費方案沒有期限、不用綁信用卡,也不是功能閹割到不能用的試用版。一般的個人網站、公司形象站,甚至流量不小的內容網站,用免費方案就足夠了。包含的內容大致如下:
| 項目 | 內容 |
|---|---|
| Universal SSL | 涵蓋根網域與第一層子網域(example.com、www.example.com),自動簽發、自動續期 |
| CDN 快取 | 靜態資源全球快取,不限流量 |
| DDoS 防護 | 不限攻擊規模,與付費方案同等級 |
| DNS 代管 | 解析速度快,記錄數不限 |
| 防火牆規則 | 可自訂數條 WAF 規則 |
| 流量分析 | 基本的流量與威脅統計 |
付費方案(Pro 每月 25 美元起)加的是圖片壓縮、更完整的 WAF 規則集、多層子網域憑證這類進階需求,之後有需要再升級就好,設定不用重來。
三、先搞懂:接上 Cloudflare 後,SSL 分成兩段
這是整篇文章最值得花時間理解的部分。很多人設定到一半出問題,或是不小心把網站設成假加密,都是因為跳過了這個觀念。
接上 Cloudflare 之後,訪客到你主機之間的連線其實是兩段:
第一段是訪客瀏覽器到 Cloudflare 節點。訪客在網址列看到的鎖頭、點開檢視的憑證,都屬於這一段,由 Universal SSL 負責,從此與你無關。「不用再買憑證」指的就是這一段。
第二段是 Cloudflare 回頭連你主機的那一段。這段要不要加密、憑證怎麼驗證,取決於你在後台選的加密模式(下一節)。重點是:主機上仍然需要一張憑證,只是可以換成 Cloudflare 免費提供、效期十五年的 Origin CA 憑證,裝一次就幾乎不用再管。
所以「用 Cloudflare 取代 SSL」的正確理解是:對訪客的那張憑證完全交給 Cloudflare 自動處理,主機端則換成一張長效免費憑證。合起來的結果,就是你不再需要為任何憑證付費或記續期日。
四、四種加密模式,只有一種值得用
Cloudflare 後台「SSL/TLS」頁面有四種加密模式,控制的是上面說的第二段連線:
| 模式 | Cloudflare 到主機 | 評價 |
|---|---|---|
| Off | 全程不加密 | 不要用 |
| Flexible | 用 HTTP 回源,後段不加密 | 不要用。訪客看起來是 HTTPS,實際上 Cloudflare 到主機這段是明文,而且很容易引發轉址迴圈 |
| Full | HTTPS 回源,但不驗證憑證 | 過渡期間可以暫用 |
| Full (strict) | HTTPS 回源,且驗證憑證有效 | 正式環境就用這個 |
網路上不少舊教學會教人選 Flexible,理由是主機端什麼都不用裝。這個便宜不要貪:它讓網站看起來有加密、實際上有一段是裸的,而且如果主機本身有強制 HTTPS 的設定,兩邊會互相轉址踢皮球,出現 ERR_TOO_MANY_REDIRECTS。直接用 Full (strict) 配 Origin CA 憑證,多花十分鐘,換來的是真正的全程加密。
五、實際操作:六個步驟
- 註冊帳號 到 dash.cloudflare.com/sign-up 用 Email 註冊,不用信用卡。介面有繁體中文,右上角可切換。
-
新增網站
點「Add a Site」,輸入網域(
example.com這樣就好,不用加 www),方案選 Free。 - 核對 DNS 掃描結果 Cloudflare 會掃描你現有的 DNS 記錄並列出來,這一步請放慢速度逐筆核對:網站的 A 或 CNAME 記錄在不在?信箱的 MX 記錄在不在?掃描偶爾會漏掉記錄,缺的要手動補上。每筆記錄旁的雲朵圖示,橘色代表流量經過 Cloudflare(有 CDN 和 SSL),灰色代表只做 DNS 解析。網站相關記錄用橘色;MX 與郵件相關的記錄一律保持灰色,這是換完 DNS 之後收不到信的頭號原因。
-
到網域註冊商更換 Nameserver
Cloudflare 會給你兩組專屬的 Nameserver(形如
xxx.ns.cloudflare.com)。回到你當初買網域的地方(GoDaddy、Gandi、阿里雲、PChome 都一樣),找到網域管理裡的 Nameserver 設定,把原本那組換成 Cloudflare 給的。生效時間從幾分鐘到二十四小時都有可能,切換期間網站不會斷,因為新舊 DNS 指的都是同一台主機。 - 等待啟用 Nameserver 生效後,Cloudflare 儀表板上的網站狀態會變成 Active,Universal SSL 憑證接著自動簽發,通常幾分鐘到幾小時內完成。這之後憑證的更新就全自動了。
- 設定加密模式與強制 HTTPS 進入該網站的「SSL/TLS」頁面:加密模式選 Full (strict);再到 Edge Certificates 分頁,打開 Always Use HTTPS(讓 http 自動跳轉 https)和 Automatic HTTPS Rewrites。
六、主機端收尾:Origin CA 憑證
要讓 Full (strict) 正常運作,主機上得有一張有效憑證。與其沿用原本每年到期的那張,不如趁這次換成 Cloudflare 的 Origin CA 憑證:免費,效期最長可以選十五年。
- 後台進入 SSL/TLS → Origin Server,點 Create Certificate。預設值就很合適:涵蓋
example.com和*.example.com,效期十五年。 - 畫面會顯示憑證(Certificate)和私鑰(Private Key)兩段文字,分別存成
cert.pem和key.pem。私鑰只顯示這一次,關掉就拿不回來了。 - 裝到主機上。用 cPanel 或 Plesk 的話,在 SSL 憑證設定裡把兩段貼上;自架 Nginx 就是
ssl_certificate和ssl_certificate_key兩行;Apache 則是SSLCertificateFile和SSLCertificateKeyFile。改完重載服務。
七、做完之後,檢查這幾件事
- 開
https://你的網域,點網址列的鎖頭看憑證,發行者應該已經變成 Google Trust Services 或 Let's Encrypt 之類(Cloudflare 自動配發的)。 - 開
http://(不加 s)確認會自動跳到 https。 - 根網域和 www 兩個網址都開一次。
- 寄一封信到你網域的信箱,確認郵件正常。沒收到的話,回去檢查 MX 相關記錄是不是被設成橘色雲朵了。
- 有興趣的話,到 SSL Labs 跑個測試,正常會拿到 A 或 A+。
八、容易踩到的坑
| 狀況 | 原因與處理 |
|---|---|
| 無限轉址(ERR_TOO_MANY_REDIRECTS) | 幾乎都是 Flexible 模式和主機端強制 HTTPS 打架。改成 Full (strict) 就好。 |
| 錯誤 526 | Full (strict) 之下主機憑證無效或過期。裝好 Origin CA 憑證即解決。 |
| 錯誤 525 | 主機 443 埠沒開,或不支援 SNI。檢查主機防火牆和 HTTPS 設定。 |
| 換完 DNS 收不到信 | MX 或郵件相關記錄被代理(橘雲)。改回灰色 DNS only。 |
| 後台改了東西前台沒變 | 被 CDN 快取住了。可以對後台路徑設 Cache Rules 的 Bypass,開發期間也可以暫開 Development Mode。 |
| 訪客 IP 全變成 Cloudflare 的 IP | 反向代理的特性。主機端要另外設定還原真實 IP,讀 CF-Connecting-IP 這個 header(Nginx 有 realip 模組,各大主機面板也多有現成選項)。 |
| 多層子網域憑證錯誤 | Universal SSL 只涵蓋第一層子網域,a.b.example.com 這種要付費的 Advanced Certificate,或者調整網址結構。 |
九、幾個常被問到的問題
換 Nameserver 的時候網站會斷嗎?
不會。只要 Cloudflare 上的 DNS 記錄和原本一致,切換期間新舊 DNS 指向同一台主機,訪客感覺不到差異。真要保險,避開網站流量高峰操作就是了。
原本花錢買的憑證怎麼辦?
放著讓它用到期即可,和 Cloudflare 並存沒有衝突,剛好撐過切換期。到期後不必續約。
網域需要轉移到 Cloudflare 嗎?
不需要。網域所有權留在原註冊商,改的只有 Nameserver。順帶一提,Cloudflare 也有網域註冊服務,以成本價計費,續費比多數註冊商便宜,但那是另一個獨立的決定。
免費憑證會比付費的不安全嗎?
加密強度完全一樣,都是標準 TLS。付費憑證貴在 OV/EV 的組織驗證和保險條款,一般網站用 DV 等級的免費憑證就夠了。現在除了銀行等特殊產業,多數商業網站用的也都是 DV。
主機上已經有 Let's Encrypt 了,還要換 Origin CA 嗎?
不一定要換。Let's Encrypt 若有正常自動續期,一樣能滿足 Full (strict)。Origin CA 的好處是十五年不用管,不依賴主機的續期排程;Let's Encrypt 的好處是脫離 Cloudflare 時不用重弄。兩者擇一即可。
整套做下來,網站得到的不只是免費且自動續期的 SSL,還順便有了 CDN 加速和基本的攻擊防護。以中小型網站的維運工作來說,這半小時花得很值得。