| 123456789101112131415161718192021222324252627282930313233343536 |
- // +build go1.7
- package gin
- import (
- "crypto/tls"
- "net/http"
- "golang.org/x/crypto/acme/autocert"
- )
- var AutoTLSManager = autocert.Manager{
- Prompt: autocert.AcceptTOS,
- }
- // RunAutoTLS attaches the router to a http.Server and starts listening and serving HTTPS (secure) requests.
- // It obtains and refreshes certificates automatically,
- // as well as providing them to a TLS server via tls.Config.
- // only from Go version 1.7 onward
- func (engine *Engine) RunAutoTLS(domain ...string) (err error) {
- debugPrint("Listening and serving HTTPS on host name is %s\n", domain)
- defer func() { debugPrintError(err) }()
- //your domain here
- if len(domain) != 0 {
- AutoTLSManager.HostPolicy = autocert.HostWhitelist(domain...)
- }
- s := &http.Server{
- Addr: ":443",
- TLSConfig: &tls.Config{GetCertificate: AutoTLSManager.GetCertificate},
- Handler: engine,
- }
- err = s.ListenAndServeTLS("", "")
- return
- }
|