tsnet: add TLS and LetsEncrypt example.

Signed-off-by: Maisem Ali <maisem@tailscale.com>
pull/3064/head
Maisem Ali 3 years ago committed by Maisem Ali
parent 1991a1ac6a
commit c121fa81c4

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

Loading…
Cancel
Save