|
|
@ -8,6 +8,7 @@ import (
|
|
|
|
"bytes"
|
|
|
|
"bytes"
|
|
|
|
"context"
|
|
|
|
"context"
|
|
|
|
"crypto/tls"
|
|
|
|
"crypto/tls"
|
|
|
|
|
|
|
|
"errors"
|
|
|
|
"flag"
|
|
|
|
"flag"
|
|
|
|
"fmt"
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
"log"
|
|
|
@ -44,6 +45,7 @@ var certArgs struct {
|
|
|
|
func runCert(ctx context.Context, args []string) error {
|
|
|
|
func runCert(ctx context.Context, args []string) error {
|
|
|
|
if certArgs.serve {
|
|
|
|
if certArgs.serve {
|
|
|
|
s := &http.Server{
|
|
|
|
s := &http.Server{
|
|
|
|
|
|
|
|
Addr: ":443",
|
|
|
|
TLSConfig: &tls.Config{
|
|
|
|
TLSConfig: &tls.Config{
|
|
|
|
GetCertificate: localClient.GetCertificate,
|
|
|
|
GetCertificate: localClient.GetCertificate,
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -57,7 +59,16 @@ func runCert(ctx context.Context, args []string) error {
|
|
|
|
fmt.Fprintf(w, "<h1>Hello from Tailscale</h1>It works.")
|
|
|
|
fmt.Fprintf(w, "<h1>Hello from Tailscale</h1>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("", "")
|
|
|
|
return s.ListenAndServeTLS("", "")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|