我已经提出TLS并且它有效 . 我知道如何在nginx中从http重写为https,但我不再使用nginx了 . 我不知道如何在Go中正确地做到这一点 .
func main() {
certificate := "/srv/ssl/ssl-bundle.crt"
privateKey := "/srv/ssl/mykey.key"
http.HandleFunc("/", rootHander)
// log.Fatal(http.ListenAndServe(":80", nil))
log.Fatal(http.ListenAndServeTLS(":443", certificate, privateKey, nil))
}
func rootHander(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("To the moon!"))
}
我怎么能以这种方式做到这一点?
3 回答
创建一个处理重定向到https的处理程序,如:
然后重定向http流量:
上面发布的解决方案有点不灵活,特别是如果外部主机名与本地主机不同 .
这是我用于HTTP-> HTTPS重定向的代码:
如果您使用标准端口(80,443),则不需要拆分地址的连接,只需在URL上设置方案就足够了 .