diff --git a/infra/conf/transport_internet.go b/infra/conf/transport_internet.go index a451a3102871..4e9a0bcdc3cf 100644 --- a/infra/conf/transport_internet.go +++ b/infra/conf/transport_internet.go @@ -639,10 +639,14 @@ func (c *TLSConfig) Build() (proto.Message, error) { if v == "" { continue } - hashValue, err := hex.DecodeString(v) + // remove colons for OpenSSL format + hashValue, err := hex.DecodeString(strings.ReplaceAll(v, ":", "")) if err != nil { return nil, err } + if len(hashValue) != 32 { + return nil, errors.New("incorrect pinnedPeerCertSha256 length: ", v) + } config.PinnedPeerCertSha256 = append(config.PinnedPeerCertSha256, hashValue) } } diff --git a/main/commands/all/tls/ping.go b/main/commands/all/tls/ping.go index 6417b74caba9..e340fb07288e 100644 --- a/main/commands/all/tls/ping.go +++ b/main/commands/all/tls/ping.go @@ -75,8 +75,6 @@ func executePing(cmd *base.Command, args []string) { NextProtos: []string{"h2", "http/1.1"}, MaxVersion: gotls.VersionTLS13, MinVersion: gotls.VersionTLS12, - // Do not release tool before v5's refactor - // VerifyPeerCertificate: showCert(), }) err = tlsConn.Handshake() if err != nil { @@ -101,8 +99,6 @@ func executePing(cmd *base.Command, args []string) { NextProtos: []string{"h2", "http/1.1"}, MaxVersion: gotls.VersionTLS13, MinVersion: gotls.VersionTLS12, - // Do not release tool before v5's refactor - // VerifyPeerCertificate: showCert(), }) err = tlsConn.Handshake() if err != nil { @@ -133,6 +129,7 @@ func printCertificates(certs []*x509.Certificate) { fmt.Println("Cert's signature algorithm: ", leaf.SignatureAlgorithm.String()) fmt.Println("Cert's publicKey algorithm: ", leaf.PublicKeyAlgorithm.String()) fmt.Println("Cert's allowed domains: ", leaf.DNSNames) + fmt.Println("Cert's leaf SHA256: ", hex.EncodeToString(GenerateCertHash(leaf))) } } @@ -153,17 +150,3 @@ func printTLSConnDetail(tlsConn *gotls.Conn) { fmt.Println("TLS Post-Quantum key exchange: false (RSA Exchange)") } } - -func showCert() func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error { - return func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error { - var hash []byte - for _, asn1Data := range rawCerts { - cert, _ := x509.ParseCertificate(asn1Data) - if cert.IsCA { - hash = GenerateCertHash(cert) - } - } - fmt.Println("Certificate Leaf Hash: ", hex.EncodeToString(hash)) - return nil - } -}