Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 12, 00:45 UTC
caddytls: Add remote_ip to HTTP cert manager (close #6952)
Matthew Holt committed
Apr 17, 2025 at 16:43 UTC
35c8c2d92d26208642cea0d1549c77a00124e154
1 file changed
+5
modules/caddytls/certmanagers.go
+5
@@ -5,6 +5,7 @@ import (
5
"crypto/tls"
6
"fmt"
7
"io"
8
+ "net"
9
"net/http"
10
"net/url"
11
"strings"
@@ -143,6 +144,10 @@ func (hcg HTTPCertGetter) GetCertificate(ctx context.Context, hello *tls.ClientH
144
qs.Set("server_name", hello.ServerName)
145
qs.Set("signature_schemes", strings.Join(sigs, ","))
146
qs.Set("cipher_suites", strings.Join(suites, ","))
147
+ remoteIP, _, err := net.SplitHostPort(hello.Conn.RemoteAddr().String())
148
+ if err == nil && remoteIP != "" {
149
+ qs.Set("remote_ip", remoteIP)
150
+ }
151
parsed.RawQuery = qs.Encode()
152
153
req, err := http.NewRequestWithContext(hcg.ctx, http.MethodGet, parsed.String(), nil)