caddytls: Add remote_ip to HTTP cert manager (close #6952)

This commit is contained in:
Matthew Holt 2025-04-17 16:43:06 -06:00
parent 0b2802faa4
commit 35c8c2d92d
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5

View File

@ -5,6 +5,7 @@ import (
"crypto/tls" "crypto/tls"
"fmt" "fmt"
"io" "io"
"net"
"net/http" "net/http"
"net/url" "net/url"
"strings" "strings"
@ -143,6 +144,10 @@ func (hcg HTTPCertGetter) GetCertificate(ctx context.Context, hello *tls.ClientH
qs.Set("server_name", hello.ServerName) qs.Set("server_name", hello.ServerName)
qs.Set("signature_schemes", strings.Join(sigs, ",")) qs.Set("signature_schemes", strings.Join(sigs, ","))
qs.Set("cipher_suites", strings.Join(suites, ",")) qs.Set("cipher_suites", strings.Join(suites, ","))
remoteIP, _, err := net.SplitHostPort(hello.Conn.RemoteAddr().String())
if err == nil && remoteIP != "" {
qs.Set("remote_ip", remoteIP)
}
parsed.RawQuery = qs.Encode() parsed.RawQuery = qs.Encode()
req, err := http.NewRequestWithContext(hcg.ctx, http.MethodGet, parsed.String(), nil) req, err := http.NewRequestWithContext(hcg.ctx, http.MethodGet, parsed.String(), nil)