keeping old but still valid CA certs on renewal
This commit is contained in:
parent
b12ce7299f
commit
1871eac7bb
@ -2,7 +2,9 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/cloudflare/cfssl/helpers"
|
||||||
"github.com/cloudflare/cfssl/log"
|
"github.com/cloudflare/cfssl/log"
|
||||||
restful "github.com/emicklei/go-restful"
|
restful "github.com/emicklei/go-restful"
|
||||||
)
|
)
|
||||||
@ -55,11 +57,22 @@ func getUsableClusterCA(cluster, name string) (ca CA, err error) {
|
|||||||
if checkErr != nil {
|
if checkErr != nil {
|
||||||
log.Infof("cluster %s: CA %s: regenerating certificate: %v", cluster, name, checkErr)
|
log.Infof("cluster %s: CA %s: regenerating certificate: %v", cluster, name, checkErr)
|
||||||
|
|
||||||
|
prevCerts, _ := helpers.ParseCertificatesPEM(ca.Cert)
|
||||||
|
|
||||||
err = ca.RenewCert()
|
err = ca.RenewCert()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf("renew: %w", err)
|
err = fmt.Errorf("renew: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
now := time.Now()
|
||||||
|
for _, cert := range prevCerts {
|
||||||
|
if cert.NotAfter.After(now) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
certPEM := helpers.EncodeCertificatePEM(cert)
|
||||||
|
ca.Cert = append(ca.Cert, certPEM...)
|
||||||
|
}
|
||||||
|
|
||||||
err = clusterCAs.Put(key, ca)
|
err = clusterCAs.Put(key, ca)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user