嘗試使用cloudflare reverse proxy 遇到的一些問題
問題
我在使用 nginx proxy manager + cloudflare reverse proxy 來保護服務器 ip 的時候, 每當開啟 cloudflare reverse proxy, 網站就會無法開啟, 便顯示下面兩種錯誤:
- too many redirect: 嘗試清除 cookies
- 這個網站無法提供安全連線: example.com 使用了不支援的通訊協定。
Too Many Redirect 問題
解決方案:
可以試試在 cloudflare 把 SSL/TLS 的加密模式 (encryption mode) 改成 Full (strict)

原因
參考這篇文章, 對於一個
用戶請求 -> cloudflare dns + cloudflare proxy -> nginx proxy manager + let's encrypt -> 服務
的工作流
如果你在nginx proxy manager 那層設置了強制https, 且設置了 cloudflare reverse proxy 並沒有把 cloudflare SSL/TSL encryption mode 改成強制ssl 的話, 情況可能會像下面這般:
- 用戶發送請求 (https)
- Cloudflare DNS -> Cloudflare 反向代理, 向服務器 (nginx proxy manager) 發送 http 請求 (因為 SSL/TSL encryption mode 是關或非強制)
- 服務器 (nginx proxy manager)收到http請求, 然後把 http 請求重新定向到 https
- url 被改成 https後, 回到第二步
無限循環
無法提供安全連結
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
這可能是因為你嘗試反向代理一個 子域名的子域名, 如 abc.cdf.example.com
或是更多層的子域名
cloudflare 頒發的 ssl 免費證書只能給域名和一層子域名用, 也就是 *.example.com
和 example.com
, 因此, 如果要代理像是 *.sub2.example.com
這樣的域名, 就必須購買 cloudflare 的 Advanced Certificate Manager, 並在 SSL/TLC -> Edge Certificate 頁面下啟用 Total TLS

可以參考這篇文章
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Yi-Ting's Blog!