expiration-check/pkg/checker/certificate.go

38 lines
746 B
Go

package checker
import (
"crypto/tls"
"math"
"time"
"gitnet.fr/deblan/expiration-check/pkg/formatter"
"gitnet.fr/deblan/expiration-check/pkg/model"
)
func CheckCertificate(domain string) *model.Result {
conn, err := tls.Dial("tcp", formatter.ToDomainAndHttpPort(domain), nil)
if err == nil {
date := conn.ConnectionState().PeerCertificates[0].NotAfter
result := model.NewResult(
domain,
math.Floor(date.Sub(time.Now()).Hours()/24),
date.Format(time.DateTime),
)
return result
}
return model.NewResultFailed(domain)
}
func CheckCertificates(domains []string) []*model.Result {
var values []*model.Result
for _, domain := range domains {
values = append(values, CheckCertificate(domain))
}
return values
}