diff --git a/bin/go-proxy b/bin/go-proxy index 9f26704..2affb93 100755 Binary files a/bin/go-proxy and b/bin/go-proxy differ diff --git a/src/go-proxy/autocert.go b/src/go-proxy/autocert.go index 562efd0..a5d8bda 100644 --- a/src/go-proxy/autocert.go +++ b/src/go-proxy/autocert.go @@ -9,6 +9,7 @@ import ( "crypto/x509" "fmt" "os" + "path" "sync" "time" @@ -162,22 +163,6 @@ func (p *AutoCertProviderBase) ObtainCert() error { return nil } -func (p *AutoCertProviderBase) saveCert(cert *certificate.Resource) error { - err := os.WriteFile(keyFileDefault, cert.PrivateKey, 0600) // -rw------- - if err != nil { - return err - } - err = os.WriteFile(certFileDefault, cert.Certificate, 0644) // -rw-r--r-- - if err != nil { - return err - } - return nil -} - -func (p *AutoCertProviderBase) needRenew() bool { - return p.expiry.Before(time.Now().Add(24 * time.Hour)) -} - func (p *AutoCertProviderBase) LoadCert() bool { cert, err := tls.LoadX509KeyPair(certFileDefault, keyFileDefault) if err != nil { @@ -192,6 +177,26 @@ func (p *AutoCertProviderBase) LoadCert() bool { return true } +func (p *AutoCertProviderBase) saveCert(cert *certificate.Resource) error { + err := os.MkdirAll(path.Dir(certFileDefault), 0644) + if err != nil { + return fmt.Errorf("unable to create cert directory: %v", err) + } + err = os.WriteFile(keyFileDefault, cert.PrivateKey, 0600) // -rw------- + if err != nil { + return fmt.Errorf("unable to write key file: %v", err) + } + err = os.WriteFile(certFileDefault, cert.Certificate, 0644) // -rw-r--r-- + if err != nil { + return fmt.Errorf("unable to write cert file: %v", err) + } + return nil +} + +func (p *AutoCertProviderBase) needRenew() bool { + return p.expiry.Before(time.Now().Add(24 * time.Hour)) +} + type AutoCertCFProvider struct { *AutoCertProviderBase *cloudflare.Config diff --git a/src/go-proxy/main.go b/src/go-proxy/main.go index 19bba63..8ac70f6 100755 --- a/src/go-proxy/main.go +++ b/src/go-proxy/main.go @@ -53,7 +53,6 @@ func main() { } } aclog.Infof("certificate will be expired at %v and get renewed", autoCertProvider.GetExpiry()) - } proxyServer = NewServer( "proxy",