Skip to content

tailscale serve can't provide tls termination for grpc #7893

@asg0451

Description

@asg0451

What is the issue?

i have a grpc service on kubernetes with a tailscale sidecar, and i want to expose it to the internet with a Funnel.

This is the serving setup;

# tailscale --socket=/tmp/tailscaled.sock serve https:443 / http://127.0.0.1:8080; tailscale --socket=/tmp/tailscaled.sock funnel 443 on
...
 # tailscale --socket=/tmp/tailscaled.sock serve status

# Funnel on:
#     - https://XX.XXXXX.ts.net

https://XX.XXXXX.ts.net (Funnel on)
|-- / proxy http://127.0.0.1:8080

(if i do a serve with regular tcp, or if i connect through tailscale directly to port 8080, the service works fine)

on my client, when i try and send a request, it returns:

Error: status: Unavailable, message: "grpc-status header missing, mapped from HTTP status code 502", details: [], metadata: MetadataMap { headers: {"content-length": "0", "date": "Sun, 16 Apr 2023 18:27:57 GMT"} }

and i see in the sidecar logs:

 2023/04/16 18:27:57 http: proxy error: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x00\x00\x12\x04\x00\x00\x00\x00\x00\x00\x04\x00\x10\x00\ │
│ x00\x00\x05\x00\x00@\x00\x00\x06\x01\x00\x00\x00"        

does tailscale serve https termination break with grpc/http2?

Steps to reproduce

No response

Are there any recent changes that introduced the issue?

No response

OS

Linux

OS version

Kubernetes/Ubuntu

Tailscale version

1.38.4 tailscale commit: 043a345-dirty go version: go1.20.3-tsddff070

Other software

No response

Bug report

BUG-8563b715f0eed5a6fdcff86867a434981502c65eb5a5071bb0693bb8e3f38793-20230416183258Z-2c89c5881f07d89d

Metadata

Metadata

Assignees

Labels

L1 Very fewLikelihoodP2 AggravatingPriority levelT5 UsabilityIssue typebugBugfunnelRelating to Tailscale Funnel https://tailscale.com/blog/introducing-tailscale-funnel/

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions