Skip to content

.NET servers reject https gRPC requests terminated to plaintext by Envoy #7979

@jukie

Description

@jukie

Description:
This appears to be the same behavior reported in istio/istio#34448 and has to do with the way Envoy preserves :scheme.

When an application makes an https gRPC request to a .NET server behind an Istio proxy or gateway and Envoy terminates the request to plaintext, starting in 1.10 Envoy preserves :scheme as https. .NET sees the mismatch between the scheme and the fact that the request from Envoy is plaintext and raises an error, rejecting the request.

My org runs a lot of .NET services and during the migration from ingress-nginx this has become an issue for grpc services. I think we should expose the ability to configure SchemeHeaderTransformation in BackendTrafficPolicy so that users can configure this. Since SchemeHeaderTransformation is an HCM level configuration ClientTrafficPolicy is right place to add this.

Repro steps:

  • Build a .NET backend with a gRPC listenter
  • GRPCRoute with TLS termination at the gateway and plaintext upstream

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions