From 7683eb294bd09079644c73cdc669f99e0c3399d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kiss=20K=C3=A1roly?= Date: Thu, 9 Jun 2022 13:21:51 +0200 Subject: [PATCH] Make reverse proxy TLS server name replaceable for SNI upstreams. --- modules/caddyhttp/reverseproxy/httptransport.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/caddyhttp/reverseproxy/httptransport.go b/modules/caddyhttp/reverseproxy/httptransport.go index 54cdb70f9..7d15644a9 100644 --- a/modules/caddyhttp/reverseproxy/httptransport.go +++ b/modules/caddyhttp/reverseproxy/httptransport.go @@ -244,6 +244,11 @@ func (h *HTTPTransport) NewTransport(ctx caddy.Context) (*http.Transport, error) // RoundTrip implements http.RoundTripper. func (h *HTTPTransport) RoundTrip(req *http.Request) (*http.Response, error) { + repl := req.Context().Value(caddy.ReplacerCtxKey).(*caddy.Replacer) + if h.Transport.TLSClientConfig != nil { + h.Transport.TLSClientConfig.ServerName = repl.ReplaceAll(h.Transport.TLSClientConfig.ServerName, "") + } + h.SetScheme(req) // if H2C ("HTTP/2 over cleartext") is enabled and the upstream request is