Context: mTLS connectivity for outbound request from Istio egress gateway to external IIS.
Problem statement: connections always fail with a 503 Service Unavailable error. Further investigation found that Istio egress sends the request in HTTP/2 but IIS is expecting HTTP1.1 for MTLS connection.
In these situations, Windows IIS falls back to HTTP/1.1 and continue the transaction. This may involve negotiating HTTP/1.1 during the handshake, or sending an error code to the client instructing it to retry over an HTTP/1.1 connection.”Ref HTTP/2 on IIS | Microsoft Docs
I tried to add the following EnvoyFilter config to set HTTP1.1 for outbound requests. But still, it’s not working. can you please guide me on this?
Istio version : 1.7
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: disable-alpn-h2
namespace: istio-system
spec:
workloadSelector:
labels:
istio: cx-egressgateway
configPatches:
- applyTo: FILTER_CHAIN
match:
listener:
filterChain:
sni: "*.mygateway.com"
patch:
operation: MERGE
value:
transportSocket:
name: envoy.transport_sockets.tls
typedConfig:
'@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
commonTlsContext:
alpnProtocols:
- "http/1.1"
tlsCertificateSdsSecretConfigs:
- name: kubernetes://wildcard-cert
sdsConfig:
ads: {}
resourceApiVersion: V3