golang
letsencrypt

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

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{} を使えば、もっと細かく制御できるっぽい。