I am using OS X Yosemite
I ran the following command in Composer because Laravel fails to download and install properly all the time:
composer diagnose
Note: I am running OS X Yosemite. I believe this works with Mavericks too.
After looking a several answers and combining them mixing and matching etc. Here is a rough explanation on what I did.
locate cacert.pem
This will list all the locations where your certificates are.
My result:
/Applications/Adobe Dreamweaver CS6/Configuration/Certs/cacert.pem
/Applications/MAMP/Library/lib/python2.7/test/pycacert.pem
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pip/_vendor/requests/cacert.pem
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/test/pycacert.pem
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/test/test_asyncio/pycacert.pem
/Users/robert/.composer/cacert.pem
/opt/vagrant/embedded/cacert.pem
/usr/ssl/certs/cacert.pem
http://curl.haxx.se/docs/caextract.html
/usr/ssl/certs/
and put the downloaded cert there /usr/ssl/certs/cacert.pem
I opened up my php.ini file and placed this line at the top of the file:
openssl.cafile=/usr/ssl/certs/cacert.pem
Restart apache (stop apache and start it again)
Everything worked out for me.
Now one thing that I do believe needs to be done is you need to tell the command line which PHP you are referring to. I am running PHP under XAMPP and not natively on my OS X. So the command line will think that you are referring to the native PHP on OS X and not the one running on XAMPP. This needs to be changed I believe for this to work. If not then it should be good.
As mentioned this solution worked for me.
Another possible reason is that the server's SSL cert has expired. If it is your server, check the /etc/apache2/ssl (for ubuntu). The certs usually last for 365 days. See 'https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04' on how to create one.