[Help-gnutls] Re: gnutls fails to verify server sertificate while openssl works

Simon Josefsson simon at josefsson.org
Fri Oct 3 17:51:45 CEST 2008


Peter Volkov <pva at gentoo.org> writes:

> peter at camobap ~ $ /usr/bin/gnutls-cli -V --x509cafile /usr/share/ca-certificates/mozilla/ValiCert_Class_2_VA.crt metasploit.com > gnutls-cli.out

The certificate chain returned by that server appears to be:

cert[0]
 # Subject's DN: O=metasploit.com,OU=Domain Control Validated,CN=metasploit.com
 # Issuer's DN: C=US,ST=Arizona,L=Scottsdale,O=GoDaddy.com\, Inc.,OU=http://certificates.godaddy.com/repository,CN=Go Daddy Secure Certification Authority,serialNumber=07969287

cert[1]
 # Subject's DN: C=US,O=The Go Daddy Group\, Inc.,OU=Go Daddy Class 2 Certification Authority
 # Issuer's DN: L=ValiCert Validation Network,O=ValiCert\, Inc.,OU=ValiCert Class 2 Policy Validation Authority,CN=http://www.valicert.com/,EMAIL=info@valicert.com

cert[2]
 # Subject's DN: C=US,ST=Arizona,L=Scottsdale,O=GoDaddy.com\, Inc.,OU=http://certificates.godaddy.com/repository,CN=Go Daddy Secure Certification Authority,serialNumber=07969287
 # Issuer's DN: C=US,O=The Go Daddy Group\, Inc.,OU=Go Daddy Class 2 Certification Authority

As far as I can tell, that isn't a valid certificate chain.  The issuer
of the first, end-entity, certificate isn't the subject of the middle
certificate in the chain.  It seems as if the final two certificates in
the chain are swapped.

According to RFC 4346 (earlier TLS specifications contains similar
wording):

   certificate_list
      This is a sequence (chain) of X.509v3 certificates.  The sender's
      certificate must come first in the list.  Each following
      certificate must directly certify the one preceding it.  Because
                  ^^^^
      certificate validation requires that root keys be distributed
      independently, the self-signed certificate that specifies the root
      certificate authority may optionally be omitted from the chain,
      under the assumption that the remote end must already possess it
      in order to validate it in any case.

So I'd say this is a server configuration error.

/Simon





More information about the Gnutls-help mailing list