Connect by JBRH Open Connect

HTTPS and TLS

HTTPS is HTTP inside a TLS tunnel. It gives you three things: nobody between client and server can read the exchange, nobody can alter it undetected, and the client can verify the server is who the certificate says. It gives you nothing about what either end does with the data afterwards, and it stops protecting anything the moment a proxy terminates the tunnel.

Status
Reference What this means
Audience
developer, both
Last verified
Product version
6.3.2

Three guarantees, precisely stated#

Confidentiality
The request line, headers, cookies and body are unreadable to anything on the path. This is why a session cookie can cross the public internet at all.
Integrity
A modification in flight breaks the record and is detected. An attacker can drop your connection; they cannot quietly edit one field of a webhook.
Server authentication
The certificate chain proves the server owns the name you asked for. Note the direction: by default the server is proved to you, not you to the server.

Client authentication is a separate mechanism and a separate decision. On Connect, proving who the *caller* is happens above TLS — a session cookie established through Google OAuth for a person, an integration key for a machine — never by the fact that the connection was encrypted.

What it does not cover#

  • Which host you contacted. The name is visible in DNS and, in the common case, in the TLS handshake. Encryption hides the conversation, not the fact that it happened.
  • Shape and timing. Sizes and intervals leak. A long silence followed by one large upload is legible without a single decrypted byte.
  • Anything at rest. Storage encryption is an unrelated control with unrelated failure modes. A perfectly configured tunnel delivers data into a database whose protection you have to arrange separately.
  • The endpoints themselves. A valid certificate says nothing about whether the server is compromised, or whether the person holding the browser is who the session says. Prompt injection arrives over a flawless TLS connection.

Where a proxy changes the picture#

In almost every production deployment the tunnel does not reach the application. A load balancer or reverse proxy terminates TLS and speaks to the application behind it. From that point on, three things the application would like to know are no longer facts it can observe — they are claims it has been handed.

FactWhere it now comes fromThe failure it causes
The client's IP addressA forwarded header the proxy addsRate limits and audit entries record the proxy, or trust a header a client set itself
Whether the request was encryptedA forwarded protocol headerThe app builds http:// redirect and callback URLs, and an OAuth flow that requires HTTPS refuses them
The host the client asked forThe Host header, which anyone can setAbsolute URLs are generated for an attacker-chosen name unless allowed hosts are enforced

Does Connect use HTTPS?#

Used, and required. The public site and the application at /app are served over it, every inbound provider webhook arrives over it, and Google OAuth — the only sign-in Connect has — will not accept a redirect target that is not HTTPS. There is no password login to fall back to, so there is no configuration in which a person authenticates over plain HTTP.

One protocol-level requirement is worth naming because it is easy to miss when writing a client: the MCP revision Connect implements requires the server to validate the Origin header and answer 403 when one is present and invalid. That is an origin check, not a transport check — TLS being healthy does not exempt a request from it.

Questions#

Does HTTPS mean a webhook is authentic?

No. It means the connection to your endpoint was not tampered with, and that you reached the host you asked for. It says nothing about whether the sender is the provider it claims to be — anyone can open an encrypted connection to a public URL. Authenticity comes from verifying the payload signature.

Is a certificate warning ever safe to click through in an integration?

Disabling verification removes the only thing distinguishing the real server from anything that can answer on that address, and it disables integrity as well as identity. If a certificate fails in a test environment, fix the trust store rather than the client.

Where does encryption at rest fit?

It is a different control for a different threat — someone reaching the storage rather than the wire. Connect's data sits in PostgreSQL with row-level security forced on every scoped table, which is an isolation control, not an encryption one. They are complementary and neither substitutes for the other.