forked from TrueCloudLab/lego
Add a way for cronjobs to automatically renew certificates.
This commit is contained in:
parent
a528107826
commit
2a9875b220
2 changed files with 19 additions and 0 deletions
7
cli.go
7
cli.go
|
@ -47,6 +47,13 @@ func main() {
|
|||
Name: "renew",
|
||||
Usage: "Renew a certificate",
|
||||
Action: renew,
|
||||
Flags: []cli.Flag{
|
||||
cli.IntFlag{
|
||||
Name: "days",
|
||||
Value: 0,
|
||||
Usage: "The number of days left on a certificate to renew it.",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/xenolf/lego/acme"
|
||||
|
@ -181,6 +182,17 @@ func renew(c *cli.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
if c.IsSet("days") {
|
||||
expTime, err := acme.GetPEMCertExpiration(certBytes)
|
||||
if err != nil {
|
||||
logger().Printf("Could not get Certification expiration for domain %s", domain)
|
||||
}
|
||||
|
||||
if int(expTime.Sub(time.Now()).Hours() / 24.0) <= c.Int("days") {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
keyBytes, err := ioutil.ReadFile(privPath)
|
||||
if err != nil {
|
||||
logger().Printf("Error while loading the private key for domain %s\n\t%v", domain, err)
|
||||
|
|
Loading…
Reference in a new issue