Added automatic tls cert updating

This commit is contained in:
Pablu23
2024-06-09 19:41:49 +02:00
parent b3fcdfd174
commit 45a0d9c150
2 changed files with 14 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
run: develop run: develop
bin/develop --server --port 8080 --secret test --database db.sqlite --debug --pretty bin/develop --secret test --server --port 8181 --database db.sqlite --debug --pretty
develop: develop:
go build -tags Develop -o bin/develop go build -tags Develop -o bin/develop
release: release:

View File

@@ -2,6 +2,7 @@ package server
import ( import (
"bytes" "bytes"
"crypto/tls"
_ "embed" _ "embed"
"fmt" "fmt"
"io" "io"
@@ -107,9 +108,18 @@ func (s *Server) Start() error {
} }
if s.options.Tls.Enabled { if s.options.Tls.Enabled {
tls := s.options.Tls.Get() tlsOpts := s.options.Tls.Get()
log.Info().Int("Port", s.options.Port).Str("Cert", tls.CertPath).Str("Key", tls.KeyPath).Msg("Starting server") server.TLSConfig = &tls.Config{
return server.ListenAndServeTLS(tls.CertPath, tls.KeyPath) GetCertificate: func(chi *tls.ClientHelloInfo) (*tls.Certificate, error) {
cert, err := tls.LoadX509KeyPair(tlsOpts.CertPath, tlsOpts.KeyPath)
if err != nil {
return nil, err
}
return &cert, err
},
}
log.Info().Int("Port", s.options.Port).Str("Cert", tlsOpts.CertPath).Str("Key", tlsOpts.KeyPath).Msg("Starting server")
return server.ListenAndServeTLS("", "")
} else { } else {
log.Info().Int("Port", s.options.Port).Msg("Starting server") log.Info().Int("Port", s.options.Port).Msg("Starting server")
return server.ListenAndServe() return server.ListenAndServe()