Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "crypto/tls"
- "fmt"
- "github.com/certifi/gocertifi"
- )
- func checkHost(host string) {
- //load ca certs. bundle
- certPool, err := gocertifi.CACerts()
- conn, err := tls.Dial("tcp", host, &tls.Config{RootCAs: certPool})
- if err != nil {
- fmt.Println(err)
- return
- }
- defer conn.Close()
- checkedCerts := make(map[string]struct{})
- for _, chain := range conn.ConnectionState().VerifiedChains {
- for _, cert := range chain {
- if _, checked := checkedCerts[string(cert.Signature)]; checked {
- continue
- }
- checkedCerts[string(cert.Signature)] = struct{}{}
- fmt.Println(cert.Subject.CommonName)
- fmt.Println(cert.NotAfter)
- }
- }
- return
- }
- func main() {
- checkHost("blog.prskavec.net:443")
- }
Add Comment
Please, Sign In to add comment