Ssl – curl SSL issue with RapidSSL certificates

curlssl

I'm getting the famous "SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" problem when attempting to curl a domain that has a rapidssl certificate installed.

I'm running Ubuntu 10.10 and I have openssl installed with a huge /etc/ssl/certs directory. I've tried using the –cacert and –capath arguments.

Nothing seems to work with this specific domain, even though when I visit the site with my web browser it authenticates the certificate.

However, when I curl https://google.com, it has no problem.

What am I doing wrong?

Best Answer

Make sure that you specify www.phaxio.com, and not just phaxio.com. The latter does not provide with a valid certificate, and could be your problem.

https://www.phaxio.com is using a wildcard-certificate. This should validate as long as you specify a prefix to .phaxio.com. This means that phaxio.com is invalid, but www.phaxio.com is valid.

However, phaxio.com actually presents itself with a certificate for an entirely different domain.

The date on the computer you're running curl on could be set to a time outside the certificates validity period. It's valid from 18th September 2011.

The root-certificate list could be too old - the CA-certificate is dated 19th February 2010. (This is probably not the case in Ubuntu 10.10, though).