Skip to content

BuildNot yet confirmed elsewhere1 publisher2 min readPublished Updated

Cloudflare's OHTTP Gateway declines to decrypt anything that reaches it through Cloudflare

Cloudflare's OHTTP Gateway beta will not decrypt requests that arrive from Workers or from hosts proxied through Cloudflare. Anyone adopting it needs a relay hosted by a different operator.

The Engineer · Build desk

How we use AISend a correction

Illustration accompanying Cloudflare's OHTTP Gateway declines to decrypt anything that reaches it through Cloudflare
Generated illustration
Relay sees the IP, gateway sees the request Who sees what when OHTTP runs through Cloudflare's Gateway. Shown as a map because the story's facts are roles and rules, not quantities.

Map of five parties. The relay sees the client's IP but cannot read the request. The gateway decrypts it and sees only the relay's address. Cloudflare's Gateway will not decrypt Worker or Cloudflare-proxied traffic. Relay and app server must be separate parties. Cloudflare supplies no relay.

Relay sees the IP, gateway sees the request
WhoHowKindClaim
Relay operatorSees the client's IP address but cannot read the requestexposure4
Gateway operatorDecrypts the request and sees its contents, but only ever sees the relay's addressexposure4
Cloudflare OHTTP GatewayWill not decrypt requests reaching it from Cloudflare Workers or hosts proxied through Cloudflaredecision2
Relay and app server operatorsThe model requires separate, non-colluding parties, per authors Lara Schull and Akshat Mahajanconstraint5
AdoptersCloudflare does not supply a relay; it says relays can run on any infrastructure providerconstraint6

What happened

  • The Gateway binds to a customer zone and listens at a fixed path, https://your-zone.com/.well-known/ohttp-gateway, so a customer cannot point it at another domain.
  • Cloudflare Access runs before decryption, so the relay can be authenticated with mutual TLS, static service credentials, or custom external logic.
  • Standard and chunked OHTTP both work, and Cloudflare recommends chunked for performance.
  • Cloudflare is renaming its existing Privacy Gateway product to Cloudflare OHTTP Relay to separate the two sides.

Why it matters

  • cost The cost sits in the relay operator's logs. Cloudflare's authors say the hard part is being able to "verifiably promise to your users that you won't inspect logs with client identifiers."
  • exposure An app that puts a session token or an email address inside the sealed request hands the gateway operator the identity OHTTP was meant to withhold, and the refusal does nothing about that.
  • constraint The fit is narrow. In gsnedders' words, OHTTP suits "stateless requests where you don't want the gateway to be able to correlate multiple requests from the same client."

The client encrypts the inner request to the gateway's public key with HPKE, as RFC 9458 specifies, and sends the sealed payload to a relay [3]. The relay sees the client's IP address and cannot read the request. The gateway reads it and sees only the relay's address [4]. A Worker in front of the Gateway, or a relay proxied through Cloudflare, would leave one company holding both the hop that knows who the client is and the hop that decrypts the request [15]. The post's authors, Lara Schull and Akshat Mahajan, write that the model "requires that the relay and app server be operated by separate, non-colluding parties." [5]

In our view the refusal is the right default. It is unusual for a vendor to ship a guard against itself, but a managed gateway that sat quietly behind Cloudflare's own relay would look correct on the wire and hide nothing.

The guard covers one route. InfoQ's account does not say how the Gateway recognises Workers or proxied traffic, or whether it checks anything beyond that. Cloudflare does not supply a relay and says relays "can run on any infrastructure provider, and they're simple." [6] The other routes to failure are the relay operator's logs [7] and the request body. Cloudflare's post says OHTTP "provides privacy at the network level, and doesn't touch the inner request body." [13]

Hacker News commenter gsnedders compared OHTTP with a SOCKS5 proxy. Matching OHTTP's unlinkability with SOCKS5 means a new TCP connection for every request and no TLS session resumption or 0-RTT [17]. With OHTTP, the client can keep a long-lived connection open to the relay, and the relay can keep one open to the gateway. For workloads like DNS over HTTPS, he said, that saves a significant amount of latency [20]. He listed the cost too, writing that "disclosure of the gateway key essentially means the relay can decrypt recorded traffic that used that key (as there is no forward secrecy)" [19]. Cloudflare manages the HPKE keys on this product [10], so the key whose leak matters most is one Cloudflare manages.

gsnedders added that OHTTP keeps the TLS fingerprinting surface away from the gateway [18]. That bears on a question commenter arshxyz raised: whether Cloudflare's WAF, which relies on TLS fingerprinting, keeps working. According to InfoQ, the announcement does not address that interaction [21].

What to watch

  • Which infrastructure providers publish relays aimed at Gateway customers, since Cloudflare supplies none for it.
  • How Cloudflare documents rotation of the managed HPKE keys, given the no-forward-secrecy point raised on Hacker News.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence58
Adoption
Insufficient
Hype gap
Insufficient
Incentives
Insufficient
Confidence55
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Cloudflare has opened a closed beta of the Cloudflare OHTTP Gateway, a managed endpoint that decrypts Oblivious HTTP requests on an origin's behalf.

    ReportedSupportedView cited source
  2. [2]

    The Gateway will not decrypt requests that reach it from Cloudflare Workers or from hosts proxied through Cloudflare.

    ReportedSupportedView cited source
  3. [3]

    Oblivious HTTP, standardized as RFC 9458, has the client encrypt the inner HTTP request to the gateway's public key using HPKE and send the sealed payload to a relay.

    ReportedSupportedView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. infoq.com

    1 article · October 12, 2026

    Cloudflare’s OHTTP Gateway Refuses to Decrypt Requests That Arrive Through Cloudflare

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

Entities

Loading related stories