From bc6e4f40bf06053453b4259e9cfff507997505a2 Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Thu, 29 Jun 2023 21:39:31 +0300 Subject: [PATCH] Code refactoring after #352 --- README.md | 9 ------- internal/api/api.go | 59 ++++++++++++++++++++++----------------------- 2 files changed, 29 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 3bbc7123..e58d0f36 100644 --- a/README.md +++ b/README.md @@ -623,15 +623,6 @@ api: base_path: "/rtc" # default "", API prefix for serve on suburl (/api => /rtc/api) static_dir: "www" # default "", folder for static files (custom web interface) origin: "*" # default "", allow CORS requests (only * supported) - tls_listen: ":1985" # default "", HTTPS port - tls_cert: | # default "". PEM-encoded fullchain certificate for https - -----BEGIN CERTIFICATE----- - ..... - -----END CERTIFICATE----- - tls_private_key: | # default "". PEM-encoded private key for https - -----BEGIN PRIVATE KEY----- - ..... - -----END PRIVATE KEY----- ``` **PS:** diff --git a/internal/api/api.go b/internal/api/api.go index 0e671191..ef7ad9ec 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -23,9 +23,9 @@ func Init() { BasePath string `yaml:"base_path"` StaticDir string `yaml:"static_dir"` Origin string `yaml:"origin"` - TLSListen string `yaml:"tls_listen"` - TLSCert string `yaml:"tls_cert"` - TLSPrivateKey string `yaml:"tls_private_key"` + TLSListen string `yaml:"tls_listen"` + TLSCert string `yaml:"tls_cert"` + TLSKey string `yaml:"tls_key"` } `yaml:"api"` } @@ -80,34 +80,33 @@ func Init() { }() // Initialize the HTTPS server - if cfg.Mod.TLSListen != "" { - tlsConfig := &tls.Config{} - if cfg.Mod.TLSCert != "" && cfg.Mod.TLSPrivateKey != "" { - tlsListener, err := net.Listen("tcp", cfg.Mod.TLSListen) - if err != nil { - log.Fatal().Err(err).Msg("[api] tls listen") - return - } - log.Info().Str("addr", cfg.Mod.TLSListen).Msg("[api] tls listen") - - cert, err := tls.X509KeyPair([]byte(cfg.Mod.TLSCert), []byte(cfg.Mod.TLSPrivateKey)) - if err != nil { - print(cfg.Mod.TLSCert) - log.Fatal().Err(err).Msg("[api] tls load cert/key") - return - } - tlsConfig.Certificates = []tls.Certificate{cert} - - tlsServer := &http.Server{ - Handler: Handler, - TLSConfig: tlsConfig, - } - go func() { - if err := tlsServer.ServeTLS(tlsListener, "", ""); err != nil { - log.Fatal().Err(err).Msg("[api] tls serve") - } - }() + if cfg.Mod.TLSListen != "" && cfg.Mod.TLSCert != "" && cfg.Mod.TLSKey != "" { + cert, err := tls.X509KeyPair([]byte(cfg.Mod.TLSCert), []byte(cfg.Mod.TLSKey)) + if err != nil { + log.Error().Err(err).Caller().Send() + return } + + tlsListener, err := net.Listen("tcp4", cfg.Mod.TLSListen) + if err != nil { + log.Fatal().Err(err).Caller().Send() + return + } + + log.Info().Str("addr", cfg.Mod.TLSListen).Msg("[api] tls listen") + + tlsServer := &http.Server{ + Handler: Handler, + TLSConfig: &tls.Config{ + Certificates: []tls.Certificate{cert}, + }, + } + + go func() { + if err := tlsServer.ServeTLS(tlsListener, "", ""); err != nil { + log.Fatal().Err(err).Msg("[api] tls serve") + } + }() } }