2 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
我發(fā)現(xiàn)為什么客戶端和服務(wù)器不能通信,rsa-sha2 算法還沒有在 x/crypto 庫中實(shí)現(xiàn)。github上有一個(gè)關(guān)于它的問題:https ://github.com/golang/go/issues/49952 。
臨時(shí)解決方案是添加
replace golang.org/x/crypto => github.com/rmohr/crypto v0.0.0-20211203105847-e4ed9664ac54
在你的 go.mod 文件的末尾,它使用來自@rmohr 的 ax/crypto fork,它與 rsa-sha2 一起使用。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
這是一種簡(jiǎn)單的方法,讓letsencrypt為您處理證書:)
func main() {
r := mux.NewRouter()
r.HandleFunc("/index", index)
certManager := autocert.Manager{
Prompt: autocert.AcceptTOS,
HostPolicy: autocert.HostWhitelist("www.example.com"), // replace with your domain
Cache: autocert.DirCache("certs"),
}
srv := &http.Server{
Handler: r,
Addr: ":https",
WriteTimeout: 5 * time.Second,
ReadTimeout: 5 * time.Second,
TLSConfig: &tls.Config{
GetCertificate: certManager.GetCertificate,
},
}
go http.ListenAndServe(":http", certManager.HTTPHandler(nil)) //nolint
log.Fatal(srv.ListenAndServeTLS("", ""))
}
- 2 回答
- 0 關(guān)注
- 118 瀏覽
添加回答
舉報(bào)