aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-07 02:42:34 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-03-07 02:42:34 +0100
commit2f4094a0eec39152c599ec4a8f452dd4a4f6577d (patch)
treefd6829ed6f940453317618539f4e2530edeffd30 /cmd
parent2c2e697d6318eaa9929cf7f68432d73d2c7a5881 (diff)
Parse Leaf
Diffstat (limited to 'cmd')
-rw-r--r--cmd/acme/file.go10
-rw-r--r--cmd/acme/main.go10
2 files changed, 18 insertions, 2 deletions
diff --git a/cmd/acme/file.go b/cmd/acme/file.go
index c639fe9..dbc8bd1 100644
--- a/cmd/acme/file.go
+++ b/cmd/acme/file.go
@@ -3,6 +3,7 @@ package main
import (
"crypto"
"crypto/tls"
+ "crypto/x509"
"io"
"os"
"path"
@@ -13,7 +14,7 @@ import (
func NewFile(fname string, mode os.FileMode) (io.WriteCloser, error) {
err := os.Rename(fname, fname+".bak")
- if nerr, ok := err.(*os.LinkError); ok && nerr.Err != syscall.ENOENT {
+ if e, ok := err.(*os.LinkError); ok && e.Err != syscall.ENOENT {
return nil, err
}
flags := os.O_WRONLY | os.O_CREATE | os.O_TRUNC
@@ -51,7 +52,12 @@ func (d domain) Save(cert tls.Certificate) error {
}
func (d domain) Load() (tls.Certificate, error) {
- return tls.LoadX509KeyPair(d.CrtFile, d.KeyFile)
+ crt, err := tls.LoadX509KeyPair(d.CrtFile, d.KeyFile)
+ if e, ok := err.(*os.PathError); ok && e.Err != syscall.ENOENT {
+ return tls.Certificate{}, nil
+ }
+ crt.Leaf, err = x509.ParseCertificate(crt.Certificate[0])
+ return crt, err
}
func (a account) Save(key crypto.PrivateKey) error {
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index 5c252e9..cfd3c6b 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -69,6 +69,16 @@ func main() {
}
for _, v := range v.Domain {
+ c, err := v.Load()
+ if err != nil {
+ log.Println(err)
+ }
+ if c.Leaf != nil {
+ log.Println(c.Leaf.Subject)
+ log.Println(c.Leaf.NotBefore)
+ log.Println(c.Leaf.NotAfter)
+ }
+
key, err := acme.NewKey(v.KeySize)
if err != nil {
log.Fatal(err)