本文為 HTTPS 連線 基本介紹,第 1 篇:
- 什麼是代管網域(Domain Hosting)?初學者完整指南
- 網站託管(Web Hosting)入門指南:讓你的網站輕鬆上線
- Cloudflare 介紹:讓網站更安全、更快速的關鍵服務
- 反向代理是什麼?初學者必看詳解
- Apache HTTP Server 是什麼:初學者指南
- Django 初學者指南:ALLOWED_HOSTS 設定與安全性考量
- 如何為初學者配置 HTTPS 和 SSL:Cloudflare、Let’s Encrypt 和 Apache 完整指南
- Let’s Encrypt 初學者完全指南
- 虛擬主機(Virtual Host)入門指南:讓你的網站輕鬆上線
- 初學者指南:設定 Apache 反向代理 Django 服務(含 SSL)
- Cloudflare 設定指南:如何正確配置 SSL/TLS 加密模式 👈進度
- Cloudflare Edge Certificates 入門指南
- 解決 Cloudflare 301 重定向循環問題:初學者指南
對於初學者來說,Cloudflare 是一個強大的 CDN(內容傳遞網路)與安全防護服務,能有效提升網站速度並增強安全性。
其中,SSL/TLS 加密模式(SSL/TLS Encryption Mode)是一個關鍵設定,直接影響網站與訪客之間的安全連線方式。
本篇文章將詳細介紹 SSL/TLS 加密模式的概念,以及如何正確選擇適合的模式,確保您的網站既安全又穩定。
SSL/TLS 加密模式是什麼?
SSL(Secure Sockets Layer)與TLS(Transport Layer Security)是兩種用於加密網路傳輸的協議,確保數據在伺服器與用戶端之間的傳輸安全。
Cloudflare 提供不同的 SSL/TLS 加密模式,允許網站管理員控制 Cloudflare 與原始伺服器之間的加密級別。
當您透過 Cloudflare 管理網站時,訪客的流量會先經過 Cloudflare,再轉發到您的原始伺服器。
因此,Cloudflare 提供了四種不同的 SSL/TLS 加密模式,讓您根據原始伺服器的配置選擇適合的安全性層級。
Cloudflare SSL/TLS 加密模式解析
Cloudflare 提供四種 SSL/TLS 加密模式,每種模式適用於不同的網站環境與安全需求。了解這些模式的運作方式,有助於您選擇最合適的設定,確保網站的安全性與穩定性。
Off(關閉 SSL/TLS)
🔹 作用方式
- 訪客 → Cloudflare:使用 HTTP(未加密)
- Cloudflare → 原始伺服器:使用 HTTP(未加密)
這種模式完全不提供加密,無論是訪客連接 Cloudflare,還是 Cloudflare 連接您的原始伺服器,所有的流量都是明文傳輸。
🔹 適用情境
- 您的網站 完全不使用 HTTPS,且沒有 SSL 憑證。
- 僅適用於開發測試環境,不適用於正式網站。
🔹 風險
- 極不安全! 所有傳輸內容(包括用戶密碼、信用卡資訊等)都可能被中間人攻擊(MITM)竊取。
- 訪客的瀏覽器可能會顯示「不安全」警告,影響用戶信任度。
- 搜尋引擎(如 Google)會對未使用 HTTPS 的網站降低排名,影響 SEO。
🔹 建議
🚫 不建議使用此模式! 除非您的網站完全不涉及敏感資訊,且只是用來測試 HTTP 連線。
Flexible(彈性模式)
🔹 作用方式
- 訪客 → Cloudflare:使用 HTTPS 加密
- Cloudflare → 原始伺服器:使用 HTTP(未加密)
Cloudflare 會為訪客提供 HTTPS 連線,但 Cloudflare 與原始伺服器之間仍然是未加密的 HTTP,這意味著後端流量依然有被攔截的風險。
🔹 適用情境
- 您的網站沒有安裝 SSL 憑證,但仍希望訪客透過 HTTPS 連線。
- 短期解決方案,當您還沒來得及安裝 SSL 憑證時,可以暫時使用。
🔹 風險
- 後端連線(Cloudflare → 原始伺服器)未加密,駭客仍然可能在這個階段攔截數據。
- 重定向迴圈(Redirect Loop)問題:
- 如果您的伺服器內部設定為強制 HTTPS,可能會與 Cloudflare 發生無限重定向的錯誤(因為 Cloudflare 發來的是 HTTP,但伺服器要求 HTTPS,導致無窮迴圈)。
- 不適用於登入頁面、電子商務網站或任何需要傳輸機密資訊的網站,因為後端流量仍然不安全。
🔹 建議
⚠️ 不建議長期使用!
如果您的伺服器還沒有 SSL 憑證,應儘快安裝 Let’s Encrypt 或其他免費 SSL 憑證,然後切換到Full 或 Full (Strict) 模式。
Full(完整模式)
🔹 作用方式
- 訪客 → Cloudflare:使用 HTTPS 加密
- Cloudflare → 原始伺服器:使用 HTTPS 加密,但不驗證憑證的有效性
這種模式確保整個傳輸過程都是加密的,但 Cloudflare 不會檢查原始伺服器上的 SSL 憑證是否有效。
即使憑證過期、是自簽憑證,甚至是不受信任的憑證,Cloudflare 仍然會接受並進行 HTTPS 連線。
🔹 適用情境
- 您的伺服器已經安裝 SSL 憑證(可以是自簽憑證或 Let’s Encrypt),但不希望 Cloudflare 嚴格驗證它的有效性。
- 需要在 Cloudflare 與伺服器之間使用 HTTPS,但暫時沒有辦法安裝正式 SSL 憑證。
🔹 風險
- Cloudflare 不會驗證 SSL 憑證的有效性,這代表如果憑證過期、錯誤,或來自不受信任的來源,Cloudflare 仍然會接受。
- 若駭客偽造一個自簽憑證,可能會欺騙 Cloudflare,導致網站流量被攔截。
🔹 建議
✅ 適用於一般情境,但仍建議改用 Full (Strict) 模式。
如果您的 SSL 憑證是有效且受信任的,請直接使用 Full (Strict) 來確保安全性更高。
補充:為什麼 Full 模式允許過期或自簽憑證?
Cloudflare 在 Full 模式 下的主要目標是確保 Cloudflare 與原始伺服器之間的流量是加密的,即便憑證本身不是有效的。
- Full 模式的重點是「加密」而不是「驗證」。
- 這樣做的好處是,即使你使用了一個過期或自簽的憑證,Cloudflare 與你的伺服器之間的流量仍然是 HTTPS 加密的,而不是明文傳輸(像 Flexible 模式那樣)。
舉個例子,假設你的伺服器安裝了一個自簽憑證(Self-Signed Certificate)。
如果你設定 Cloudflare 為 Flexible 模式,Cloudflare 會用 HTTP 來連線你的伺服器,導致原始伺服器之間的流量是未加密的。
但如果你使用 Full 模式,Cloudflare 仍然會使用 HTTPS 來連線你的伺服器,即便你的憑證沒有被驗證。
換句話說,這個模式的設計目的是:
- 讓 Cloudflare 與你的伺服器之間的流量仍然是加密的(即便 SSL 憑證不受信任)。
- 允許網站管理員使用自簽憑證或過期憑證作為臨時方案,而不影響 Cloudflare 提供 HTTPS 服務。
那為什麼還需要 SSL 憑證?
雖然 Cloudflare 的 Full 模式 允許使用過期或自簽憑證,但憑證仍然非常重要,主要原因有以下幾點:
(1) Full 模式不會驗證憑證,可能帶來安全風險
- 駭客可以冒充你的伺服器
- 由於 Cloudflare 不會驗證憑證的有效性,這代表如果駭客攔截了你的流量,並回應 Cloudflare 一個偽造的自簽憑證,Cloudflare 可能會接受,這可能導致中間人攻擊(MITM)。
- 這就是為什麼 Full 模式的安全性 比不上 Full (Strict) 模式。
(2) 瀏覽器仍然需要有效的 SSL 憑證
- Cloudflare 只能保護訪客 → Cloudflare 這一段的 HTTPS,但如果你直接訪問你的原始伺服器(例如透過 IP 或其他方式),瀏覽器仍然會顯示 SSL 錯誤警告,因為你的憑證是過期或無效的。
(3) 不能使用 HSTS(HTTP Strict Transport Security)
- HSTS 需要一個有效的 SSL 憑證才能啟用,如果你使用過期或自簽憑證,你無法啟用 HSTS,這會降低網站的安全性。
(4) API、Webhook 可能無法運作
- 許多第三方服務(如支付平台、API 服務)會檢查 SSL 憑證的有效性,如果你的憑證過期,這些服務可能會拒絕連線,導致網站的某些功能無法正常運作。
Full (Strict)(完整嚴格模式)
🔹 作用方式
- 訪客 → Cloudflare:使用 HTTPS 加密
- Cloudflare → 原始伺服器:使用 HTTPS 加密,並驗證 SSL 憑證的有效性
此模式提供最高等級的安全性,確保所有連線過程都是加密的,且 Cloudflare 會驗證原始伺服器的 SSL 憑證是否有效。
🔹 適用情境
- 您的伺服器已安裝有效且受信任的 SSL 憑證(如 Let’s Encrypt、GlobalSign、DigiCert 等)。
- 希望確保 Cloudflare 與原始伺服器之間的連線安全,避免駭客利用無效或冒充的憑證進行攻擊。
- 適用於電子商務、會員網站、企業系統等需要高安全性的網站。
🔹 優勢
✅ 最高等級的安全性,確保整個通訊過程都是可信且受保護的。
✅ Cloudflare 會驗證 SSL 憑證的有效性,避免駭客冒充原始伺服器。
✅ 符合搜尋引擎最佳安全標準,有助於 SEO 排名。
🔹 建議
🔥 強烈建議使用!
如果您的伺服器有有效的 SSL 憑證(可以使用免費的 Let’s Encrypt),這是最推薦的模式,確保整個網站連線過程最安全。
如何在 Cloudflare 設定 SSL/TLS 加密模式?
如果您已經決定使用哪種 SSL/TLS 模式,可以按照以下步驟設定:
步驟 1:登入 Cloudflare
- 前往 Cloudflare 官網 並登入您的帳戶。
- 在**儀表板(Dashboard)**選擇您的網站。
步驟 2:進入 SSL/TLS 設定
- 在左側選單點選 SSL/TLS。
- 在「Overview(概覽)」標籤下,找到 SSL/TLS Encryption Mode(SSL/TLS 加密模式)。
步驟 3:選擇適合的模式
根據您的需求選擇以下模式:
- Off:不加密(不推薦)。
- Flexible:適用於沒有 SSL 憑證的網站(不太安全)。
- Full:有 SSL 憑證但不驗證(中等安全)。
- Full (Strict):有有效 SSL 憑證並驗證(最安全,推薦!)。
步驟 4:確認設定並測試
- 選擇模式後,Cloudflare 會自動套用變更。
- 建議您等待幾分鐘後,開啟瀏覽器並輸入 https://您的網站 來測試是否正常運作。
結論:哪種 SSL/TLS 模式最適合你?
| 模式 | 加密方式 | Cloudflare 連線原始伺服器 | 安全性 | 適用場景 |
|---|---|---|---|---|
| Off | 無加密 | HTTP | 🚫極低 | 不建議使用 |
| Flexible | HTTPS | HTTP | ⚠️低 | 沒有 SSL 憑證的臨時方案 |
| Full | HTTPS | HTTPS(不驗證憑證) | ✅中等 | 伺服器有 SSL,但不需嚴格驗證 |
| Full (Strict) | HTTPS | HTTPS(驗證憑證) | 🔥最高 | 最推薦!最安全的選擇 |
如果您希望最高的安全性,Full (Strict) 模式是最佳選擇,確保整個網站的加密流量都受到保護。
如果您的伺服器無法安裝正式 SSL 憑證,Full 模式仍然是一個比 Flexible 更好的選擇。
透過正確的 Cloudflare 設定,您可以提升網站的安全性,保護訪客數據,並確保良好的使用者體驗!
希望這篇指南能幫助您順利設定 Cloudflare 的 SSL/TLS 模式,讓您的網站更加安全與穩定。🚀