gin 使用 https

  • 2022-08-04
  • 浏览 (43)

gin 开启 https,使用let’s encrypt。

引用的包

"github.com/gin-gonic/autotls"
"github.com/gin-gonic/gin"
"golang.org/x/crypto/acme/autocert"

代码

Router := gin.New()

//log.Fatal(autotls.Run(Router, "seaxiang.com", "www.seaxiang.com", "m.seaxiang.com", "seaxiang-dev.com"))

// https
m := autocert.Manager{
	Prompt:     autocert.AcceptTOS,
	HostPolicy: autocert.HostWhitelist("seaxiang.com", "www.seaxiang.com", "m.seaxiang.com", "seaxiang-dev.com", "haokiu.com", "www.haokiu.com", "m.haokiu.com"),
	Cache:      autocert.DirCache("/var/www/.cache"),
}
log.Fatal(autotls.RunWithManager(Router, &m))

注意事项

在本地测试会出现各种问题,比如:no viable challenge type found等。主要原因是autocert需要与let’s encrypt进行双向通讯。

本地测试的话需要做一些端口映射的配置。比如使用frp工具,然后需要修改hosts文件,使用本地域名。

所以一般在外网配置https就行。