simplify http serve
Kim committed
Mar 4, 2026 at 12:22 UTC
350aa79cd17703129f6d5e32320d7612d6c899b3
1 file changed
+11
-35
cmd/relay-server/serve.go
+11
-35
@@ -126,45 +126,21 @@ func serveAPI(addr string, serv *portal.RelayServer, admin *Admin, frontend *Fro
126
ReadHeaderTimeout: 5 * time.Second,
127
TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler)),
128
}
129
- rootHost := types.PortalRootHost(flagPortalURL)
129
acmeManager := serv.GetACMEManager()
131
- if acmeManager != nil && rootHost != "" {
132
- srv.TLSConfig = &tls.Config{
133
- GetCertificate: func(hello *tls.ClientHelloInfo) (*tls.Certificate, error) {
134
- if hello == nil {
135
- return nil, errors.New("missing TLS client hello")
136
- }
137
-
138
- serverName := strings.TrimSpace(strings.ToLower(hello.ServerName))
139
- if serverName != "" && !strings.EqualFold(serverName, rootHost) {
140
- return nil, fmt.Errorf("acme certificate is only served for portal root host %q", rootHost)
141
- }
142
-
143
- certFile, keyFile := acmeManager.TLSFiles()
144
- if certFile == "" || keyFile == "" {
145
- return nil, errors.New("acme certificate files are not ready")
146
- }
147
-
148
- cert, err := tls.LoadX509KeyPair(certFile, keyFile)
149
- if err != nil {
150
- return nil, fmt.Errorf("load acme certificate: %w", err)
151
- }
152
- return &cert, nil
153
- },
154
- }
155
- } else if acmeManager != nil && rootHost == "" {
156
- log.Warn().Msg("[server] portal root host is empty; ACME TLS disabled for admin/API listener")
130
+ srv.TLSConfig = &tls.Config{
131
+ GetCertificate: func(hello *tls.ClientHelloInfo) (*tls.Certificate, error) {
132
+ certFile, keyFile := acmeManager.TLSFiles()
133
+ cert, err := tls.LoadX509KeyPair(certFile, keyFile)
134
+ if err != nil {
135
+ return nil, fmt.Errorf("load acme certificate: %w", err)
136
+ }
137
+ return &cert, nil
138
+ },
139
}
140
141
go func() {
160
- var err error
161
- if srv.TLSConfig != nil {
162
- log.Info().Str("addr", addr).Str("root_host", rootHost).Msg("[server] https api enabled via ACME")
163
- err = srv.ListenAndServeTLS("", "")
164
- } else {
165
- log.Info().Str("addr", addr).Msgf("[server] http api enabled")
166
- err = srv.ListenAndServe()
167
- }
142
+ log.Info().Str("addr", addr).Msg("[server] https api enabled via ACME")
143
+ err := srv.ListenAndServeTLS("", "")
144
if err != nil && err != http.ErrServerClosed {
145
log.Error().Err(err).Msg("[server] http error")
146
cancel()