Guest User

Untitled

a guest
Apr 20th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "crypto/tls"
  5. "fmt"
  6.  
  7. "github.com/certifi/gocertifi"
  8. )
  9.  
  10. func checkHost(host string) {
  11. //load ca certs. bundle
  12. certPool, err := gocertifi.CACerts()
  13. conn, err := tls.Dial("tcp", host, &tls.Config{RootCAs: certPool})
  14.  
  15. if err != nil {
  16. fmt.Println(err)
  17. return
  18. }
  19. defer conn.Close()
  20.  
  21. checkedCerts := make(map[string]struct{})
  22. for _, chain := range conn.ConnectionState().VerifiedChains {
  23. for _, cert := range chain {
  24. if _, checked := checkedCerts[string(cert.Signature)]; checked {
  25. continue
  26. }
  27. checkedCerts[string(cert.Signature)] = struct{}{}
  28. fmt.Println(cert.Subject.CommonName)
  29. fmt.Println(cert.NotAfter)
  30. }
  31. }
  32.  
  33. return
  34. }
  35.  
  36. func main() {
  37.  
  38. checkHost("blog.prskavec.net:443")
  39. }
Add Comment
Please, Sign In to add comment