使用curl命中WSDL,证书问题

时间:2015-03-03 21:59:54

标签: php curl soap-client pkcs#12

这似乎很难找到,所以如果我把它放在错误的位置,请纠正我。

我有一张p12证书&可以使用它与我的浏览器连接到WSDL服务并获得XML响应。我正在尝试使用php cURL连接到相同的服务。 Every example I find让我将我的p12分解为cert和pem文件,这些文件无论如何都无效。这有必要吗?有没有办法只使用p12?根据该链接的建议,我将p12拆分,我的代码如下:

$local_cert = 'file.crt.pem';
$local_key = 'file.key.pem';
$passphrase = "p12_passphrase";
$url='https://url.for.the?wsdl';
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
curl_setopt($ch, CURLOPT_SSLCERT, $local_cert);
curl_setopt($ch, CURLOPT_SSLKEY, $local_key);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $passphrase);
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, $passphrase);
$ret = curl_exec($ch);
print_r($ret);

这不会返回任何内容。我不懂,它可以在浏览器中使用。我应该使用soapclient吗?找出问题的下一步是什么?

0 个答案:

没有答案