diff --git a/cmd/vaind/main.go b/cmd/vaind/main.go index 7e5baca..2311d72 100644 --- a/cmd/vaind/main.go +++ b/cmd/vaind/main.go @@ -55,6 +55,9 @@ const usage = "vaind [init] " type config struct { Port int + + Cert string + Key string } func main() { @@ -114,8 +117,17 @@ func main() { sm := http.NewServeMux() vain.NewServer(sm, db) addr := fmt.Sprintf(":%d", c.Port) - if err := http.ListenAndServe(addr, sm); err != nil { - log.Printf("problem with http server: %v", err) - os.Exit(1) + + if c.Cert == "" || c.Key == "" { + log.Printf("INSECURE MODE") + if err := http.ListenAndServe(addr, sm); err != nil { + log.Printf("problem with http server: %v", err) + os.Exit(1) + } + } else { + if err := http.ListenAndServeTLS(addr, c.Cert, c.Key, sm); err != nil { + log.Printf("problem with http server: %v", err) + os.Exit(1) + } } } diff --git a/server.go b/server.go index a87d2c9..895149c 100644 --- a/server.go +++ b/server.go @@ -130,7 +130,11 @@ func (s *Server) register(w http.ResponseWriter, req *http.Request) { http.Error(w, err.Message, err.Code) return } - log.Printf("http://%s/api/v0/confirm/%+v", req.Host, tok) + proto := "https" + if req.TLS == nil { + proto = "http" + } + log.Printf("%s://%s/api/v0/confirm/%+v", proto, req.Host, tok) fmt.Fprintf(w, "please check your email\n") }