Posted at

Golang で Let's Encrypt の証明書を発行して使用する

More than 1 year has passed since last update.

Golang で ACME プロトコルがサポートされてたみたいなので試してみた。

Document のとおりなんだけれど、以下のコードだけで証明書を発行してListenまでしてくれる。

golang.org/x/crypto/acme/autocert


package main

import (
"fmt"
"log"
"net/http"

"golang.org/x/crypto/acme/autocert"
)

func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, TLS user! Your config: %+v", r.TLS)
})
log.Fatal(http.Serve(autocert.NewListener("www.example.jp"), mux))
}

autocert.Manager{} を使えば、もっと細かく制御できるっぽい。