feat: native https support
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
This commit is contained in:
parent
522f863c6d
commit
e8db30abd9
20
cmd/root.go
20
cmd/root.go
@ -1,6 +1,7 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/tls"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
@ -26,6 +27,8 @@ func init() {
|
|||||||
rootCmd.Flags().StringP("address", "a", "127.0.0.1", "address to listen on")
|
rootCmd.Flags().StringP("address", "a", "127.0.0.1", "address to listen on")
|
||||||
rootCmd.Flags().StringP("log", "l", "stderr", "log output")
|
rootCmd.Flags().StringP("log", "l", "stderr", "log output")
|
||||||
rootCmd.Flags().IntP("port", "p", 0, "port to listen on")
|
rootCmd.Flags().IntP("port", "p", 0, "port to listen on")
|
||||||
|
rootCmd.Flags().StringP("cert", "c", "", "tls certificate")
|
||||||
|
rootCmd.Flags().StringP("key", "k", "", "tls key")
|
||||||
rootCmd.AddCommand(versionCmd)
|
rootCmd.AddCommand(versionCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,11 +84,22 @@ listening on loalhost on a random port. Use the flags to change it.`,
|
|||||||
port, err := cmd.Flags().GetInt("port")
|
port, err := cmd.Flags().GetInt("port")
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
listener, err := net.Listen("tcp", addr+":"+strconv.Itoa(port))
|
cert := mustGetString(cmd, "cert")
|
||||||
if err != nil {
|
key := mustGetString(cmd, "key")
|
||||||
log.Fatal(err)
|
|
||||||
|
var listener net.Listener
|
||||||
|
|
||||||
|
if cert != "" && key != "" {
|
||||||
|
cer, err := tls.LoadX509KeyPair(cert, key)
|
||||||
|
checkErr(err)
|
||||||
|
config := &tls.Config{Certificates: []tls.Certificate{cer}}
|
||||||
|
listener, err = tls.Listen("tcp", addr+":"+strconv.Itoa(port), config)
|
||||||
|
} else {
|
||||||
|
listener, err = net.Listen("tcp", addr+":"+strconv.Itoa(port))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkErr(err)
|
||||||
|
|
||||||
log.Println("Listening on", listener.Addr().String())
|
log.Println("Listening on", listener.Addr().String())
|
||||||
if err := http.Serve(listener, fhttp.Handler(env)); err != nil {
|
if err := http.Serve(listener, fhttp.Handler(env)); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user