Ver código fonte

tsnet: add TLS and LetsEncrypt example.

Signed-off-by: Maisem Ali <[email protected]>
Maisem Ali 4 anos atrás
pai
commit
c121fa81c4
1 arquivos alterados com 13 adições e 1 exclusões
  1. 13 1
      tsnet/example/tshello/tshello.go

+ 13 - 1
tsnet/example/tshello/tshello.go

@@ -6,6 +6,8 @@
 package main
 
 import (
+	"crypto/tls"
+	"flag"
 	"fmt"
 	"html"
 	"log"
@@ -16,12 +18,22 @@ import (
 	"tailscale.com/tsnet"
 )
 
+var (
+	addr = flag.String("addr", ":80", "address to listen on")
+)
+
 func main() {
+	flag.Parse()
 	s := new(tsnet.Server)
-	ln, err := s.Listen("tcp", ":80")
+	ln, err := s.Listen("tcp", *addr)
 	if err != nil {
 		log.Fatal(err)
 	}
+	if *addr == ":443" {
+		ln = tls.NewListener(ln, &tls.Config{
+			GetCertificate: tailscale.GetCertificate,
+		})
+	}
 	log.Fatal(http.Serve(ln, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 		who, err := tailscale.WhoIs(r.Context(), r.RemoteAddr)
 		if err != nil {