[Bug 205011] openssl: verify error:num=20:unable to get local issuer certificate

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Dec 4 08:58:07 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205011

            Bug ID: 205011
           Summary: openssl: verify error:num=20:unable to get local
                    issuer certificate
           Product: Base System
           Version: 10.1-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: oliver at openbrackets.net

The openssl in 10.1 release fails to verify some server certificates using 
/usr/local/share/certs/ca-root-nss.crt. FreeBSD 10 & 10.2 both work fine. This
may be an upstream issue with openssl, but I have not been able to find any
reported issues. 

To Reproduce:
$ openssl s_client -connect api.textmarketer.co.uk:443
depth=2 C = US, O = "thawte, Inc.", OU = Certification Services
Division, OU = "(c) 2006 thawte, Inc. - For authorized use only", CN =
thawte Primary Root CA
verify error:num=20:unable to get local issuer certificate
...

The same command on 10.2 (or 10) results in:
$ openssl s_client -connect api.textmarketer.co.uk:443
depth=2 C = US, O = "thawte, Inc.", OU = Certification Services Division, OU =
"(c) 2006 thawte, Inc. - For authorized use only", CN = thawte Primary Root CA
verify return:1
...

This error message is widely reported as being due to path issues to the CA
bundle. In fact on 10.1 a similar command even fails to verify other server
certs with a different root CA:

$openssl s_client -connect google.com:443
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify error:num=20:unable to get local issuer certificate

However the google.com Equifax secure root CA can be made to work with 10.1 if
you specify the -CAfile

$ openssl s_client -CAfile /usr/local/share/certs/ca-root-nss.crt -connect
google.com:443
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1

This is NOT the case for the original Thawte example:

$ openssl s_client -CAfile /usr/local/share/certs/ca-root-nss.crt -connect
api.textmarketer.co.uk:443
depth=2 C = US, O = "thawte, Inc.", OU = Certification Services
Division, OU = "(c) 2006 thawte, Inc. - For authorized use only", CN =
thawte Primary Root CA
verify error:num=20:unable to get local issuer certificate

On FreeBSD 10 or 10.2 all CA root certs tested verify fine, with the default
install without the need for CAfile. 

Having to pass -CAfile might be acceptable, as this is just a "packaging and OS
integration issue on paths", however the fact that even with the correct
-CAfile SOME root certs do NOT verify, leads me to believe that something more
fundamental is broken with the openssl version in FreeBSD 10.1, which is:
OpenSSL 1.0.1l-freebsd 15 Jan 2015

This was tested and verified on a clean install of 10.1-RELEASE. 

(NOTE: openssl from ports also works fine, even on 10.1, this report is about
the openssl in the base system).

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list