Add tls configuration

This commit is contained in:
sirkrypt0
2021-04-29 23:23:07 +02:00
committed by Jan-Eric Hellenberg
parent f401ebb3c4
commit b744d7f16c
4 changed files with 35 additions and 6 deletions

3
.gitignore vendored
View File

@ -1,2 +1,5 @@
# Project binary
poseidon
# TLS certificate/key
*.crt
*.key

View File

@ -1,6 +1,7 @@
package config
import (
"crypto/tls"
"flag"
"fmt"
"gitlab.hpi.de/codeocean/codemoon/poseidon/logging"
@ -14,8 +15,11 @@ import (
var (
Config = &configuration{
Server: server{
Address: "127.0.0.1",
Port: 3000,
Address: "127.0.0.1",
Port: 3000,
TLS: false,
CertFile: "",
KeyFile: "",
},
Nomad: nomad{
Address: "",
@ -26,12 +30,20 @@ var (
Level: "INFO",
},
}
log = logging.GetLogger("config")
log = logging.GetLogger("config")
TLSConfig = &tls.Config{
MinVersion: tls.VersionTLS13,
CurvePreferences: []tls.CurveID{tls.CurveP521, tls.CurveP384, tls.CurveP256},
PreferServerCipherSuites: true,
}
)
type server struct {
Address string
Port int
Address string
Port int
TLS bool
CertFile string
KeyFile string
}
type nomad struct {

View File

@ -1,6 +1,9 @@
server:
address: 127.0.0.1
port: 3000
tls: false
certfile: ./poseidon.crt
keyfile: ./poseidon.key
nomad:
address: http://127.0.0.1:4646
token: SECRET

13
main.go
View File

@ -28,7 +28,18 @@ func main() {
log.WithField("address", server.Addr).Info("Starting server")
go func() {
if err := server.ListenAndServe(); err != nil {
var err error
if config.Config.Server.TLS {
server.TLSConfig = config.TLSConfig
log.
WithField("CertFile", config.Config.Server.CertFile).
WithField("KeyFile", config.Config.Server.KeyFile).
Debug("Using TLS")
err = server.ListenAndServeTLS(config.Config.Server.CertFile, config.Config.Server.KeyFile)
} else {
err = server.ListenAndServe()
}
if err != nil {
if err == http.ErrServerClosed {
log.WithError(err).Info("Server closed")
} else {