From bd188f27d05f10d08b6b90ebc4557322f3a142a6 Mon Sep 17 00:00:00 2001 From: Kevin McConnell Date: Mon, 30 Sep 2024 03:22:42 -0400 Subject: [PATCH] Add support for `HTTP-01` ACME challenges --- internal/server/service.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/server/service.go b/internal/server/service.go index cce833b..1c96de0 100644 --- a/internal/server/service.go +++ b/internal/server/service.go @@ -298,13 +298,20 @@ func (s *Service) createCertManager() *autocert.Manager { } func (s *Service) createMiddleware() http.Handler { + var handler http.Handler = http.HandlerFunc(s.serviceRequestWithTarget) + if s.options.ErrorPagePath != "" { slog.Debug("Using custom error pages", "service", s.name, "path", s.options.ErrorPagePath) errorPageFS := os.DirFS(s.options.ErrorPagePath) - return WithErrorPageMiddleware(errorPageFS, false, http.HandlerFunc(s.serviceRequestWithTarget)) + handler = WithErrorPageMiddleware(errorPageFS, false, handler) + } + + if s.certManager != nil { + slog.Debug("Using ACME handler", "service", s.name) + handler = s.certManager.HTTPHandler(handler) } - return http.HandlerFunc(s.serviceRequestWithTarget) + return handler } func (s *Service) serviceRequestWithTarget(w http.ResponseWriter, r *http.Request) {