如何使用杜松子酒在 golang 中管理证书文件更新?
How to manage certfile renew in golang with gin?
我有一个需要 https 的 mini gin 微服务。但有时,我的证书文件被 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 程序检查证书是否已更改?
您定期重启它。
模拟示例,nginx 位于您的 gin 程序之前:
- 证书有效期为 3 个月
- 每个月
certbot renew
个 cronjob 或 systemd 计时器是 运行
- 每周重启 nginx
您的杜松子酒程序也会发生同样的情况。您每周重新启动 gin 程序 (/service)。
我有一个需要 https 的 mini gin 微服务。但有时,我的证书文件被 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 程序检查证书是否已更改?
您定期重启它。
模拟示例,nginx 位于您的 gin 程序之前:
- 证书有效期为 3 个月
- 每个月
certbot renew
个 cronjob 或 systemd 计时器是 运行 - 每周重启 nginx
您的杜松子酒程序也会发生同样的情况。您每周重新启动 gin 程序 (/service)。