У меня простой веб-сервер Go, и я хочу, чтобы он использовал сертификаты TLS. Я знаю certbot, приложение python, и до сих пор часто им пользовался, но мне хотелось бы все в значительной степени автоматизировать. Вот где я наткнулся на https://github.com/caddyserver/certmagic, что довольно круто. Однако я не могу осмыслить, используя его в сочетании с настраиваемой структурой сервера.
srv := http.Server{
ReadTimeout: 1 * time.Second,
WriteTimeout: 2 * time.Second,
IdleTimeout: 10 * time.Second,
ReadHeaderTimeout: 2 * time.Second,
Handler: router,
Addr: serverAddr,
}
if fileExists(serverCertFile) && fileExists(serverKeyFile) {
if err := srv.ListenAndServeTLS(serverCertFile, serverKeyFile); err != nil && err != http.ErrServerClosed {
panic("Couldn't start server with TLS")
}
} else {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
panic("Couldn't start server")
}
}
До сих пор я подходил к проблеме таким образом, просто используя вручную запрошенные сертификаты. Есть предложения?