I've been pulling my hair out over this and I need some expert help.
I'm trying to access an XML API using cURL over SSL.
Here's the API address:
https://tps-test.voiceeclipse.com/cgi-bin/ve_xml.cgi
Here's what I'm doing:
$ch = curl_init(); // initialize curl handle
curl_setopt( $ch, CURLOPT_SSLVERS ION, 2); <-- tried this, doesn't
help
curl_setopt($ch , CURLOPT_SSL_VER IFYPEER, 1); <-- if I set this to
false, I get a message that no XML was received, but I've verified
that I *am* sending a valid XML stream.
curl_setopt($ch , CURLOPT_SSL_VER IFYHOST, false); <-- no effect whether
I use this or not
curl_setopt($ch , CURLOPT_URL, "https://tps-test.voiceeclip se.com/cgi-
bin/ve_xml.cgi"); // set url to post to
curl_setopt($ch , CURLOPT_RETURNT RANSFER, 1); // return into a
variable
curl_setopt($ch , CURLOPT_TIMEOUT , 10); // times out after 10 seconds
curl_setopt($ch , CURLOPT_POSTFIE LDS, $xmlStream); // add POST fields
$xmlresult = curl_exec($ch); // run the whole process
Here's my error:
Error 60: SSL Certificate problem, verify that the CA cert is OK.
Details: error:1407E086: SSL routines:SSL2_S ET_CERTIFICATE: certificate
verify failed
I don't really understand how this is supposed to work. The local
server has its own SSL certificate. I've also downloaded the
certificate for the voiceeclipse server and put that in the certs
folder. I've even directly specified that file using:
curl_setopt($ch , CURLOPT_CAINFO, "(full certificate path)"); but no
joy. I know I have the certificate in the right format (Base-64).
What else could be going wrong?
Help!!
Damon