使用Golang来生成并使用Let’s Encrypt的证书
听说Golang也支持ACME协议,所以我试了一下。
根据文件的内容,只需以下代码即可生成证书并进行监听。
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{},似乎可以更精细地进行控制。