Skip to content

iPhone cannot establish secure connection to Tailscale Serve *.ts.net HTTPS endpoints #19147

@felipematos

Description

@felipematos

Title: iPhone cannot establish secure connection to Tailscale Serve *.ts.net HTTPS endpoints, while same endpoints work from host/server side

Summary

On an iPhone connected to our tailnet, all HTTPS endpoints served via Tailscale Serve on a single node fail with a secure-connection / SSL protocol error. The same endpoints are reachable from the host itself and show a valid certificate and successful TLS handshake server-side.

This appears to affect all served HTTPS ports on the same node, not just one app.

What we're serving

Node hostname:

  • max3.tail4f12c7.ts.net

Current tailscale serve status includes routes like:

  • https://max3.tail4f12c7.ts.net -> 127.0.0.1:18789
  • https://max3.tail4f12c7.ts.net:4174 -> 127.0.0.1:4174
  • https://max3.tail4f12c7.ts.net:4200 -> 127.0.0.1:4200
  • https://max3.tail4f12c7.ts.net:4201 -> 127.0.0.1:4201
  • https://max3.tail4f12c7.ts.net:6080 -> 127.0.0.1:6080
  • https://max3.tail4f12c7.ts.net:8443 -> 127.0.0.1:8443
  • https://max3.tail4f12c7.ts.net:9867 -> 127.0.0.1:9867
  • plus a Funnel route on :4100

Symptoms

On iPhone:

  • Safari and Chrome both fail
  • error presented as secure connection failure / ERR_SSL_PROTOCOL_ERROR
  • all tested https://max3.tail4f12c7.ts.net[:port] endpoints fail similarly
  • not limited to /auth or to a single backend service

What works

From the server/host side:

  • curl to https://max3.tail4f12c7.ts.net/auth returns HTTP/2 200
  • certificate validates successfully
  • TLS handshake completes
  • cert CN/SAN matches max3.tail4f12c7.ts.net
  • issuer is Let's Encrypt

Sample server-side observations:

  • /auth -> 200
  • :4174 -> 200
  • :4200/health -> 200
  • :6080 -> 200

So the issue does not appear to be that the serve config is entirely broken or that the certificate is invalid on the server.

Troubleshooting already attempted

On the iPhone, we tried all of the following and the problem persisted:

  • confirmed the device is connected to the tailnet
  • disabled iCloud Private Relay
  • disabled IP address tracking / IP privacy features
  • tested both Safari and Chrome
  • disconnected and reconnected Tailscale
  • removed the iPhone from the tailnet and re-added it
  • reinstalled Tailscale
  • rebooted the iPhone

Also tested against multiple served ports, all failing in the same way.

Why this seems Tailscale-client-specific

  • the host/server side sees valid TLS and healthy responses
  • the problem reproduces across all served HTTPS endpoints on the same node from the iPhone
  • re-adding the iPhone to the tailnet did not help

Question

Is there a known iPhone/iOS issue with Tailscale Serve HTTPS endpoints on *.ts.net hostnames that can produce SSL protocol / secure connection failures even when the server-side certificate and handshake are valid?

Any guidance on additional diagnostics we should gather from the iPhone/Tailscale client side would be appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-iosIssues involving Tailscale for iPhone/iPadbugBug

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions