我使用Go Fiber作为TLS服务器。如何在不重新启动应用程序的情况下将新配置应用于TLS服务器?
例如我有代码
app := fiber.New()
m := &autocert.Manager{
Prompt: autocert.AcceptTOS,
HostPolicy: autocert.HostWhitelist("example.com", "example.net"),
Cache: autocert.DirCache("./certs"),
}
cfg := &tls.Config{
GetCertificate: m.GetCertificate,
NextProtos: []string{
"http/1.1", "acme-tls/1",
},
}
ln, err := tls.Listen("tcp", ":443", cfg)
if err != nil {
panic(err)
}
log.Fatal(app.Listener(ln))
我想为TLS服务器设置一个新的域列表。
HostPolicy: autocert.HostWhitelist("example1.org", "example1.info"),
如果可以在不重启服务器的情况下应用新的TLS配置,那就更好了
我不认为这是可能的,我不认为你应该在运行时更改域。我喜欢Fiber和Certmagic的结合,但我会用不同的方式来做:
func main() {
app := fiber.New()
ln, err := certmagic.Listen([]string{"example.com"})
if err != nil {
panic(err)
}
log.Fatal(app.Listener(ln))
}