HTTP/3 在 UDP 上使用 QUIC 协议而不是 TCP。因为 Gateway 的默认代理仅处理 TCP 流量,所以 HTTP/3 检测需要开启 UDP 代理。如果不启用它,HTTP/3 流量将绕过 HTTP 检测。网络策略仍然适用于底层的 UDP 流量。
Gateway 最后对 HTTP/3 流量应用 HTTP 策略。有关更多信息,请参阅执行顺序。
在能够检测任何 HTTPS 流量之前,您必须在设备上部署用户端证书并开启TLS 解密。要检测 HTTP/3 流量,您还必须开启 UDP 的Gateway 代理。
要启用 UDP 的 Gateway 代理和 TLS 解密:
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust(Zero Trust)> Traffic policies(流量策略)> Traffic settings(流量设置)。
- 在 **Proxy and inspection(代理和检查)**中,打开 Allow Secure Web Gateway to proxy traffic(允许 Secure Web Gateway 代理流量)。
- 选择 TCP 和 UDP。
- 打开 TLS decryption(TLS 解密)。
Gateway 可以通过建立 HTTP/3 代理连接来检测来自 Mozilla Firefox 和 Microsoft Edge 的 HTTP/3 流量。然后,Gateway 将终止 HTTP/3 连接,解密并检测流量,并通过 HTTP/2 连接到目标服务器。Gateway 还可以检测其他 HTTP 应用程序,如 cURL。
如果同时启用了 UDP 代理和 TLS 解密,Google Chrome 会自动取消 HTTP/3 连接并在 HTTP/2 上重试,Gateway 可以对其进行检测。如果关闭了 UDP 代理或 TLS 解密,来自 Chrome 的 HTTP/3 流量将完全绕过检测。
如果您需要从客户端到源站具有端到端加密的 HTTP/3 流量,同时仍想使用 Gateway 代理,则可以创建一条 Do Not Inspect(不检测)HTTP 策略来匹配所需的流量。使用 Do Not Inspect(不检测) 策略允许 HTTP/3 流量通过绕过 Gateway 的 TLS 解密和检测,来保留代理性能和端到端加密。
要在不启用 UDP 代理的情况下将 Gateway 策略应用于 HTTP 流量,您必须在用户的浏览器中关闭 QUIC,以确保只有 HTTP/2 流量到达 Gateway。
Google Chrome
- 转到
chrome://flags - 将 Experimental QUIC protocol 设置为 Disabled。
- 重新启动 Chrome。
Safari
您无法在 Safari 中关闭 QUIC。所有流量都将通过 HTTP/3 发送。
Firefox
- 转到
about:config。 - 如果收到警告,选择 Accept the Risk and Continue(接受风险并继续)。
- 将 network.http.http3.enable 设置为 false。
- 重新启动 Firefox。
Microsoft Edge
- 转到
edge://flags - 将 Experimental QUIC protocol 设置为 Disabled。
- 重新启动 Edge。