Skip to content

Commit 5897ea9

Browse files
committed
completed first working version
1 parent 7eef2bc commit 5897ea9

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

main.go

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package main
22

33
import (
44
"encoding/csv"
5+
"errors"
56
"fmt"
67
"os"
8+
"strings"
79
"time"
810
)
911

@@ -20,6 +22,12 @@ const (
2022
CERT_CN
2123
)
2224

25+
const (
26+
OUTPUT_EXPIRED = "CRITICAL: already expired"
27+
OUTPUT_EXPIRES_30D = "WARNING: expires in < 30d"
28+
OUTPUT_EXPIRES_90D = "INFO: expires in < 90d"
29+
)
30+
2331
var TIME_90D = time.Now().Add(90 * 24 * time.Hour)
2432
var TIME_30D = time.Now().Add(30 * 24 * time.Hour)
2533
var TIME_NOW = time.Now()
@@ -77,15 +85,38 @@ func (c *Certificates) process_line(line []string) {
7785
}
7886
}
7987

88+
func (c *Certificate) get_certificate_cn() (*string, error) {
89+
t := strings.Split(*c.CN, "/")
90+
for _, item := range t {
91+
if strings.HasPrefix(item, "CN=") {
92+
cn := strings.TrimPrefix(item, "CN=")
93+
return &cn, nil
94+
}
95+
}
96+
return nil, errors.New("No CN found!")
97+
}
98+
8099
func (c *Certificates) print_expired() {
81100
for _, cert := range c.Certificates {
101+
var cn *string
102+
var err error
103+
var expired string
82104
if cert.Expired.Before(TIME_NOW) {
83-
fmt.Println("That certificate is already expired!")
105+
cn, err = cert.get_certificate_cn()
106+
expired = OUTPUT_EXPIRED
84107
} else if cert.Expired.Before(TIME_30D) {
85-
fmt.Println("This certificate will expire in <= 30d")
108+
cn, err = cert.get_certificate_cn()
109+
expired = OUTPUT_EXPIRES_30D
86110
} else if cert.Expired.Before(TIME_90D) {
87-
fmt.Println("This certificate will expire in <= 90d")
111+
cn, err = cert.get_certificate_cn()
112+
expired = OUTPUT_EXPIRES_90D
113+
} else {
114+
continue
115+
}
116+
if err != nil {
117+
panic(err)
88118
}
119+
fmt.Println("Expiry Date:", cert.Expired.Format(time.DateOnly), "CN:", *cn, "SN:", *cert.Serial, expired)
89120
}
90121
}
91122

0 commit comments

Comments
 (0)