Php 使用curl访问WSDL,解决证书问题

Php 使用curl访问WSDL,解决证书问题,php,curl,soap-client,pkcs#12,Php,Curl,Soap Client,Pkcs#12,这似乎很难找到,所以如果我把它放错地方,请纠正我 我有一个p12证书&可以将它与我的浏览器一起使用,以连接到WSDL服务并获得XML响应。我正在尝试使用php cURL连接到同一个服务。让我把我的p12分解成cert和pem文件,这些文件无论如何都不起作用。这有必要吗?有没有办法只用p12?根据该链接的建议,我将p12拆分为以下代码: $local_cert = 'file.crt.pem'; $local_key = 'file.key.pem'; $passphrase = "p12_pas

这似乎很难找到,所以如果我把它放错地方,请纠正我

我有一个p12证书&可以将它与我的浏览器一起使用,以连接到WSDL服务并获得XML响应。我正在尝试使用php cURL连接到同一个服务。让我把我的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吗?我要解决这个问题的下一步是什么?

使用guzzle它可以为您处理所有这类混乱