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 }