summary refs log tree commit diff stats
path: root/internal/server/tls.go
diff options
context:
space:
mode:
authorAlan Pearce2025-01-30 22:16:09 +0100
committerAlan Pearce2025-01-30 22:16:09 +0100
commit99f8047ef20a64f948ac2b703c81eb49bed091c0 (patch)
treea0365a7b2e477467a91bef247db09624028e1807 /internal/server/tls.go
parent4566db657dab6af43f8fce814cd0e42cbcc788bf (diff)
downloadwebsite-99f8047ef20a64f948ac2b703c81eb49bed091c0.tar.lz
website-99f8047ef20a64f948ac2b703c81eb49bed091c0.tar.zst
website-99f8047ef20a64f948ac2b703c81eb49bed091c0.zip
re-organise everything sqlite
Diffstat (limited to 'internal/server/tls.go')
-rw-r--r--internal/server/tls.go52
1 files changed, 26 insertions, 26 deletions
diff --git a/internal/server/tls.go b/internal/server/tls.go
index 40fddac..5e2819f 100644
--- a/internal/server/tls.go
+++ b/internal/server/tls.go
@@ -24,31 +24,31 @@ type redisConfig struct {
 	Password      string `conf:"required"`
 	EncryptionKey string `conf:"required"`
 	KeyPrefix     string `conf:"default:certmagic"`
-	TLSEnabled    bool   `conf:"default:false,env:TLS_ENABLED"`
-	TLSInsecure   bool   `conf:"default:false,env:TLS_INSECURE"`
+	TLSEnabled    bool   `conf:"default:false"`
+	TLSInsecure   bool   `conf:"default:false"`
 }
 
 func (s *Server) serveTLS() (err error) {
 	log := s.log.Named("tls")
 
-	wildcardDomain := "*." + s.config.WildcardDomain
-	certificateDomains := slices.Clone(s.config.Domains)
+	wildcardDomain := "*." + s.options.Config.WildcardDomain
+	certificateDomains := slices.Clone(s.options.Config.Domains)
 
-	certmagic.HTTPPort = s.runtimeConfig.Port
-	certmagic.HTTPSPort = s.runtimeConfig.TLSPort
+	certmagic.HTTPPort = s.options.Port
+	certmagic.HTTPSPort = s.options.TLSPort
 	certmagic.Default.Logger = log.GetLogger().Named("certmagic")
 	cfg := certmagic.NewDefault()
 
 	acme := &certmagic.DefaultACME
 	acme.Logger = certmagic.Default.Logger
 	acme.Agreed = true
-	acme.Email = s.config.Email
-	acme.ListenHost = strings.Trim(s.runtimeConfig.ListenAddress, "[]")
+	acme.Email = s.options.Config.Email
+	acme.ListenHost = strings.Trim(s.options.ListenAddress, "[]")
 
-	if s.runtimeConfig.Development {
-		ca := s.runtimeConfig.ACMECA
+	if s.options.Development {
+		ca := s.options.ACMEIssuer
 		if ca == "" {
-			return errors.New("can't enable tls in development without an ACME_CA")
+			return errors.New("can't enable tls in development without an ACME_ISSUER")
 		}
 
 		cp, err := x509.SystemCertPool()
@@ -57,14 +57,14 @@ func (s *Server) serveTLS() (err error) {
 			cp = x509.NewCertPool()
 		}
 
-		if cacert := s.runtimeConfig.ACMECACert; cacert != "" {
+		if cacert := s.options.ACMEIssuerCert; cacert != "" {
 			cp.AppendCertsFromPEM([]byte(cacert))
 		}
 
 		// caddy's ACME server (step-ca) doesn't specify an OCSP server
 		cfg.OCSP.DisableStapling = true
 
-		acme.CA = s.runtimeConfig.ACMECA
+		acme.CA = s.options.ACMEIssuer
 		acme.TrustedRoots = cp
 		acme.DisableTLSALPNChallenge = true
 	} else {
@@ -87,7 +87,7 @@ func (s *Server) serveTLS() (err error) {
 			},
 		}
 
-		certificateDomains = append(slices.Clone(s.config.Domains), wildcardDomain)
+		certificateDomains = append(slices.Clone(s.options.Config.Domains), wildcardDomain)
 
 		rs := certmagic_redis.New()
 		rs.Address = []string{rc.Address}
@@ -107,7 +107,7 @@ func (s *Server) serveTLS() (err error) {
 
 	ln, err := listenfd.GetListener(
 		1,
-		net.JoinHostPort(s.runtimeConfig.ListenAddress, strconv.Itoa(s.runtimeConfig.Port)),
+		net.JoinHostPort(s.options.ListenAddress, strconv.Itoa(s.options.Port)),
 		log.Named("listenfd"),
 	)
 	if err != nil {
@@ -123,7 +123,7 @@ func (s *Server) serveTLS() (err error) {
 			}
 			url := r.URL
 			url.Scheme = "https"
-			port := s.config.BaseURL.Port()
+			port := s.options.Config.BaseURL.Port()
 			if port == "" {
 				url.Host = r.Host
 			} else {
@@ -132,9 +132,9 @@ func (s *Server) serveTLS() (err error) {
 					log.Warn("error splitting host and port", "error", err)
 					host = r.Host
 				}
-				url.Host = net.JoinHostPort(host, s.config.BaseURL.Port())
+				url.Host = net.JoinHostPort(host, s.options.Config.BaseURL.Port())
 			}
-			if slices.Contains(s.config.Domains, r.Host) {
+			if slices.Contains(s.options.Config.Domains, r.Host) {
 				http.Redirect(w, r, url.String(), http.StatusMovedPermanently)
 			} else {
 				http.NotFound(w, r)
@@ -146,18 +146,18 @@ func (s *Server) serveTLS() (err error) {
 			log.Error("error in http handler", "error", err)
 		}
 	}(ln, &http.Server{
-		ReadHeaderTimeout: s.ReadHeaderTimeout,
-		ReadTimeout:       s.ReadTimeout,
-		WriteTimeout:      s.WriteTimeout,
-		IdleTimeout:       s.IdleTimeout,
+		ReadHeaderTimeout: ReadHeaderTimeout,
+		ReadTimeout:       ReadTimeout,
+		WriteTimeout:      WriteTimeout,
+		IdleTimeout:       IdleTimeout,
 	})
 
 	log.Debug(
 		"starting certmagic",
 		"http_port",
-		s.runtimeConfig.Port,
+		s.options.Port,
 		"https_port",
-		s.runtimeConfig.TLSPort,
+		s.options.TLSPort,
 	)
 	cfg.Issuers = []certmagic.Issuer{certmagic.NewACMEIssuer(cfg, *acme)}
 	err = cfg.ManageAsync(context.TODO(), certificateDomains)
@@ -169,7 +169,7 @@ func (s *Server) serveTLS() (err error) {
 
 	sln, err := listenfd.GetListenerTLS(
 		0,
-		net.JoinHostPort(s.runtimeConfig.ListenAddress, strconv.Itoa(s.runtimeConfig.TLSPort)),
+		net.JoinHostPort(s.options.ListenAddress, strconv.Itoa(s.options.TLSPort)),
 		tlsConfig,
 		log.Named("listenfd"),
 	)
@@ -177,5 +177,5 @@ func (s *Server) serveTLS() (err error) {
 		return errors.WithMessage(err, "could not bind tls socket")
 	}
 
-	return s.Serve(sln)
+	return s.server.Serve(sln)
 }