@@ -54,10 +54,6 @@ func runACME(listenAddr string, m http.Handler) error {
5454 altTLSALPNPort = p
5555 }
5656
57- // FIXME: this path is not right, it uses "AppWorkPath" incorrectly, and writes the data into "AppWorkPath/https"
58- // Ideally it should migrate to AppDataPath write to "AppDataPath/https"
59- certmagic .Default .Storage = & certmagic.FileStorage {Path : setting .AcmeLiveDirectory }
60- magic := certmagic .NewDefault ()
6157 // Try to use private CA root if provided, otherwise defaults to system's trust
6258 var certPool * x509.CertPool
6359 if setting .AcmeCARoot != "" {
@@ -67,7 +63,13 @@ func runACME(listenAddr string, m http.Handler) error {
6763 log .Warn ("Failed to parse CA Root certificate, using default CA trust: %v" , err )
6864 }
6965 }
70- myACME := certmagic .NewACMEIssuer (magic , certmagic.ACMEIssuer {
66+ // FIXME: this path is not right, it uses "AppWorkPath" incorrectly, and writes the data into "AppWorkPath/https"
67+ // Ideally it should migrate to AppDataPath write to "AppDataPath/https"
68+ // And one more thing, no idea why we should set the global default variables here
69+ // But it seems that the current ACME code needs these global variables to make renew work.
70+ // Otherwise, "renew" will use incorrect storage path
71+ certmagic .Default .Storage = & certmagic.FileStorage {Path : setting .AcmeLiveDirectory }
72+ certmagic .DefaultACME = certmagic.ACMEIssuer {
7173 CA : setting .AcmeURL ,
7274 TrustedRoots : certPool ,
7375 Email : setting .AcmeEmail ,
@@ -77,8 +79,10 @@ func runACME(listenAddr string, m http.Handler) error {
7779 ListenHost : setting .HTTPAddr ,
7880 AltTLSALPNPort : altTLSALPNPort ,
7981 AltHTTPPort : altHTTPPort ,
80- })
82+ }
8183
84+ magic := certmagic .NewDefault ()
85+ myACME := certmagic .NewACMEIssuer (magic , certmagic .DefaultACME )
8286 magic .Issuers = []certmagic.Issuer {myACME }
8387
8488 // this obtains certificates or renews them if necessary
0 commit comments