From 19283a3c864f3b00cfa700c78f1fd2f2cce99306 Mon Sep 17 00:00:00 2001 From: Marcos Lilljedahl Date: Fri, 8 Sep 2017 16:14:01 -0300 Subject: [PATCH] Add rediretion when using https --- config/config.go | 4 ++-- handlers/bootstrap.go | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config/config.go b/config/config.go index 6f890c3..29e5039 100644 --- a/config/config.go +++ b/config/config.go @@ -21,7 +21,7 @@ const ( var NameFilter = regexp.MustCompile(PWDHostPortGroupRegex) var AliasFilter = regexp.MustCompile(AliasPortGroupRegex) -var SSLPortNumber, PortNumber, Key, Cert, SessionsFile, PWDContainerName, L2ContainerName, L2Subdomain, PWDCName, HashKey, SSHKeyPath, L2RouterIP string +var PortNumber, Key, Cert, SessionsFile, PWDContainerName, L2ContainerName, L2Subdomain, PWDCName, HashKey, SSHKeyPath, L2RouterIP string var UseLetsEncrypt bool var LetsEncryptCertsDir string var LetsEncryptDomains stringslice @@ -41,7 +41,7 @@ func ParseFlags() { flag.Var(&LetsEncryptDomains, "letsencrypt-domain", "List of domains to validate with let's encrypt") flag.StringVar(&LetsEncryptCertsDir, "letsencrypt-certs-dir", "/certs", "Path where let's encrypt certs will be stored") flag.BoolVar(&UseLetsEncrypt, "use-letsencrypt", false, "Enabled let's encrypt tls certificates") - flag.StringVar(&PortNumber, "port", "3000", "Give a TCP port to run the application") + flag.StringVar(&PortNumber, "port", "3000", "Port number") flag.StringVar(&Key, "key", "./pwd/server-key.pem", "Server key for SSL") flag.StringVar(&Cert, "cert", "./pwd/server.pem", "Give a SSL cert") flag.StringVar(&SessionsFile, "save", "./pwd/sessions", "Tell where to store sessions file") diff --git a/handlers/bootstrap.go b/handlers/bootstrap.go index 1f890d5..d73e447 100644 --- a/handlers/bootstrap.go +++ b/handlers/bootstrap.go @@ -2,6 +2,7 @@ package handlers import ( "crypto/tls" + "fmt" "log" "net/http" "os" @@ -110,6 +111,16 @@ func Register() { httpServer.TLSConfig = &tls.Config{ GetCertificate: certManager.GetCertificate, } + + go func() { + http.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) { + http.Redirect(rw, r, fmt.Sprintf("https://%s", r.Host), http.StatusMovedPermanently) + }) + log.Println("Starting redirect server") + log.Fatal(http.ListenAndServe(":3001", nil)) + log.Fatal(httpServer.ListenAndServe()) + }() + log.Println("Listening on port " + config.PortNumber) log.Fatal(httpServer.ListenAndServeTLS("", "")) } else {