summaryrefslogtreecommitdiff
path: root/tls-getcerts.go
diff options
context:
space:
mode:
Diffstat (limited to 'tls-getcerts.go')
-rw-r--r--tls-getcerts.go19
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)