【问题标题】:How to manage certfile renew in golang with gin?如何使用 gin 在 golang 中管理 certfile 更新?
【发布时间】:2020-03-15 12:25:58
【问题描述】:

我有一个需要 https 的 mini gin 微服务。但有时,我的 certfile 用 certbot 更新,但我不知道什么时候,我的 gin 微服务仍在使用旧证书。

func Run() {
    fmt.Println("begin")
    r := gin.Default()
    r.Use(cors.Default())
    r.POST("getLieu/", getAdr)
    r.GET("lucky/", Lucky)

    r.RunTLS((":8083"),"/etc/letsencrypt/live/toto.fr/fullchain.pem","/etc/letsencrypt/live/toto.fr/privkey.pem") // listen and serve on 0.0.0.0:8080
}

如何告诉我的 gin 程序检查证书是否已更改?

【问题讨论】:

  • 对 Gin 不熟悉,但想必您可以通过某种方式指定 tls.Config。使用the GetCertificate field 按需加载证书。

标签: go go-gin


【解决方案1】:

您定期重新启动它。

类比示例,nginx 位于您的 gin 程序前面:

  • 证书有效期为 3 个月
  • 每个月都会运行一个 certbot renew cronjob 或 systemd 计时器
  • 每周 nginx 都会重启

您的杜松子酒程序也会发生同样的情况。您每周都会重新启动 gin 程序 (/service)。

加分:graceful shutdown

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    相关资源
    最近更新 更多