From c6c523e005803c02b8c678ca01f4e13dabccd0b4 Mon Sep 17 00:00:00 2001 From: dalun Date: Wed, 13 Sep 2023 00:32:48 +0000 Subject: [PATCH] prevent out of range when check issuer exist --- src/mod/acme/autorenew.go | 14 -------------- src/mod/acme/utils.go | 5 +++++ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/mod/acme/autorenew.go b/src/mod/acme/autorenew.go index 13872fd..a608729 100644 --- a/src/mod/acme/autorenew.go +++ b/src/mod/acme/autorenew.go @@ -280,12 +280,6 @@ func (a *AutoRenewer) CheckAndRenewCertificates() ([]string, error) { } if CertExpireSoon(certBytes) || CertIsExpired(certBytes) { //This cert is expired - CAName, err := ExtractIssuerName(certBytes) - if err != nil { - //Maybe self signed. Ignore this - log.Println("Unable to extract issuer name for cert " + file.Name()) - continue - } DNSName, err := ExtractDomains(certBytes) if err != nil { @@ -296,7 +290,6 @@ func (a *AutoRenewer) CheckAndRenewCertificates() ([]string, error) { expiredCertList = append(expiredCertList, &ExpiredCerts{ Filepath: filepath.Join(certFolder, file.Name()), - CA: CAName, Domains: DNSName, }) } @@ -315,12 +308,6 @@ func (a *AutoRenewer) CheckAndRenewCertificates() ([]string, error) { } if CertExpireSoon(certBytes) || CertIsExpired(certBytes) { //This cert is expired - CAName, err := ExtractIssuerName(certBytes) - if err != nil { - //Maybe self signed. Ignore this - log.Println("Unable to extract issuer name for cert " + file.Name()) - continue - } DNSName, err := ExtractDomains(certBytes) if err != nil { @@ -331,7 +318,6 @@ func (a *AutoRenewer) CheckAndRenewCertificates() ([]string, error) { expiredCertList = append(expiredCertList, &ExpiredCerts{ Filepath: filepath.Join(certFolder, file.Name()), - CA: CAName, Domains: DNSName, }) } diff --git a/src/mod/acme/utils.go b/src/mod/acme/utils.go index 40d873d..1638044 100644 --- a/src/mod/acme/utils.go +++ b/src/mod/acme/utils.go @@ -53,6 +53,11 @@ func ExtractIssuerName(certBytes []byte) (string, error) { return "", fmt.Errorf("failed to parse certificate: %v", err) } + // Check if exist incase some acme server didn't have org section + if len(cert.Issuer.Organization) == 0 { + return "", fmt.Errorf("cert didn't have org section exist") + } + // Extract the issuer name issuer := cert.Issuer.Organization[0]