diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-11-18 03:23:25 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-11-18 03:23:25 -0500 |
commit | 89fa60bdf5ed6bd729f4d7931c9603e896d38665 (patch) | |
tree | b13004ac9c45976ae340e6dba13774dac1ea4abb /tls-getcerts.go | |
parent | c4f6d3489ef91c539ba88e372635e4d0d87e6ad2 (diff) |
more
Diffstat (limited to 'tls-getcerts.go')
-rw-r--r-- | tls-getcerts.go | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/tls-getcerts.go b/tls-getcerts.go index b0d4533..ba951c9 100644 --- a/tls-getcerts.go +++ b/tls-getcerts.go @@ -3,31 +3,30 @@ package main import ( "crypto/tls" "crypto/x509" + "encoding/pem" "fmt" "os" - "encoding/pem" ) -func getcert(server string) (*x509.Certificate, error){ - conn, err := tls.Dial("tcp", fmt.Sprintf("%s:443", server), &tls.Config{ServerName: server}) +func getcert(socket string) (*x509.Certificate, error){ + conn, err := tls.Dial("tcp", socket, &tls.Config{InsecureSkipVerify: true}) if err != nil { return nil, err } defer conn.Close() - chain := conn.ConnectionState().PeerCertificates - return chain[len(chain)-2], nil + return conn.ConnectionState().PeerCertificates[0], nil } func main() { - for _, server := range os.Args[1:] { - cert, err := getcert(server) - if err != nil { - fmt.Fprintf(os.Stderr, "Could not get certificate from server %q: %q\n", server, err) + for _, socket := range os.Args[1:] { + cert, err := getcert(socket) + if cert == nil { + fmt.Fprintf(os.Stderr, "Could not get certificate for socket %q: %q\n", socket, err) os.Exit(1) } block := pem.Block{ Type: "CERTIFICATE", - Headers: nil, + Headers: map[string]string{"X-Socket": socket}, Bytes: cert.Raw, } pem.Encode(os.Stdout, &block) |