Files
mgmt/examples/tls/tls.go
James Shubin 3fb492f6aa util: Add a TLS helper
Make it easier to build TLS stuff in pure golang.
2024-11-01 19:41:35 -04:00

38 lines
860 B
Go

// Modified from: golang/src/crypto/tls/generate_cert.go
package main
import (
"fmt"
"log"
"net/http"
"github.com/purpleidea/mgmt/util"
)
// HelloServer is a simple handler.
func HelloServer(w http.ResponseWriter, req *http.Request) {
fmt.Printf("req: %+v\n", req)
w.Header().Set("Content-Type", "text/plain")
w.Write([]byte("This is hello world!\n"))
}
func main() {
// wget --no-check-certificate https://127.0.0.1:1443/hello -O -
tls := util.NewTLS()
tls.Host = "localhost" // TODO: choose something
keyPemFile := "/tmp/key.pem"
certPemFile := "/tmp/cert.pem"
if err := tls.Generate(keyPemFile, certPemFile); err != nil {
fmt.Printf("error: %v\n", err)
return
}
http.HandleFunc("/hello", HelloServer)
if err := http.ListenAndServeTLS(":1443", certPemFile, keyPemFile, nil); err != nil {
log.Fatal("ListenAndServe: ", err)
}
}