Home | About | Apps | Github | Rss
Getting a HTTPS server started in Go using certificates from letsencrypt is incredibly easy. Just takes 3 lines of code.
The package autocert
does this for you.
go get -d golang.org/x/crypto/acme/autocert
Use it to constructs a new listener and start a server
l := autocert.NewListener("www.example.com)
s := &http.Server{}
s.Serve(l)
package main
import (
"fmt"
"net/http"
"github.com/gorilla/mux"
"golang.org/x/crypto/acme/autocert"
)
func main() {
// 1. proxy requests
// 2. letsencrypt based https
// 3. read-only mode
addr := "kalyanchakravarthy.net"
m := mux.NewRouter()
m.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
fmt.Fprintf(w, "Hello world")
})
s := &http.Server{
Handler: m,
}
l := autocert.NewListener(addr)
s.Serve(l)
}