
這篇文章稍微紀錄一下我最近遇到的小問題,不過不如說是我自己沒注意到的部分。
前情提要
我自架了一些服務,嘗試使用 Cloudflare 的 Proxy 服務時一直顯示 403 錯誤。
發生原因
Cloudflare 的 Proxy 服務有分以下四種加密等級:
完整(嚴格)

若請求使用 HTTPS,則在 Cloudflare 與您的原點之間加密流量。
接受由 Cloudflare 簽發或受信任憑證機構(CA)簽署的原點憑證。
完整

若請求使用 HTTPS,則在 Cloudflare 與您的原點之間加密流量。
不進行憑證驗證。接受任何憑證,包括自簽憑證。
彈性

若請求使用 HTTPS,則在您的訪客與 Cloudflare 之間加密流量。不會在 Cloudflare 與您的原點之間加密流量。
不進行憑證驗證。
關閉

不會在訪客、Cloudflare 或您的原點之間加密流量。
不進行憑證驗證。
而我的網域那時候的選擇是「彈性」,所以 Cloudflare 便會以 HTTP 未加密的方式向我的 NAS 請求資源。
而又我的反向代理伺服器只有代理到 HTTPS 的流量,這才會導致 HTTP 的流量會被拒絕。

解決方法
- 在 NAS 端新增對 HTTP 的代理
- 更改全網域的 Cloudflare 加密模式
- 針對特定全(子)網域以 Configuration Rules 更改 Cloudflare 加密模式(我的選擇)
其實這問題困擾我很久了,我原本還以為是 Synology NAS 沒有設定信任的代理伺服器的問題。只能說是被自動轉址養壞了,都忘記 HTTP 和 HTTPS 是分開來的了。