diff --git a/http/web.go b/http/web.go
index 447a2d7..dc0111d 100644
--- a/http/web.go
+++ b/http/web.go
@@ -596,12 +596,13 @@ func portServes(l config.Listener) map[int]*serve {
 
 		if https && l.TLS.ACME != "" {
 			s.TLSConfig = l.TLS.ACMEConfig
-		} else if https {
-			s.TLSConfig = l.TLS.Config
-			if l.TLS.ACME != "" {
-				tlsport := config.Port(mox.Conf.Static.ACME[l.TLS.ACME].Port, 443)
+
+			tlsport := config.Port(mox.Conf.Static.ACME[l.TLS.ACME].Port, 443)
+			if portServe[tlsport] == nil || !slices.Contains(portServe[tlsport].Kinds, "acme-tls-alpn-01") {
 				ensureServe(true, tlsport, "acme-tls-alpn-01", false)
 			}
+		} else if https {
+			s.TLSConfig = l.TLS.Config
 		}
 		return s
 	}