diff --git a/cmd/tailscale/cli/cert.go b/cmd/tailscale/cli/cert.go index 0c59d4c74..ba4679378 100644 --- a/cmd/tailscale/cli/cert.go +++ b/cmd/tailscale/cli/cert.go @@ -8,6 +8,7 @@ import ( "bytes" "context" "crypto/tls" + "errors" "flag" "fmt" "log" @@ -44,6 +45,7 @@ var certArgs struct { func runCert(ctx context.Context, args []string) error { if certArgs.serve { s := &http.Server{ + Addr: ":443", TLSConfig: &tls.Config{ GetCertificate: localClient.GetCertificate, }, @@ -57,7 +59,16 @@ func runCert(ctx context.Context, args []string) error { fmt.Fprintf(w, "

Hello from Tailscale

It works.") }), } - log.Printf("running TLS server on :443 ...") + switch len(args) { + case 0: + // Nothing. + case 1: + s.Addr = args[0] + default: + return errors.New("too many arguments; max 1 allowed with --serve-demo (the listen address)") + } + + log.Printf("running TLS server on %s ...", s.Addr) return s.ListenAndServeTLS("", "") }