Do you have a question? Post it now! No Registration Necessary. Now with pictures!
March 9, 2007, 5:45 pm
rate this thread
I'm trying to access an XML API using cURL over SSL.
Here's the API address:
Here's what I'm doing:
$ch = curl_init(); // initialize curl handle
curl_setopt( $ch, CURLOPT_SSLVERSION, 2); <-- tried this, doesn't
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 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_VERIFYHOST, false); <-- no effect whether
I use this or not
curl_setopt($ch, CURLOPT_URL, "https://tps-test.voiceeclipse.com/cgi-
bin/ve_xml.cgi"); // set url to post to
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return into a
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // times out after 10 seconds
curl_setopt($ch, CURLOPT_POSTFIELDS, $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_SET_CERTIFICATE:certificate
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?