具有自签名证书的PHP SOAP

具有自签名证书的PHP SOAP,php,soap,ssl,ssl-certificate,Php,Soap,Ssl,Ssl Certificate,我在用php和SoapClient调用websevrice时遇到一些问题。Web服务具有自签名证书 这是在windows 7上的wamp 2上运行的 代码如下: <?php $client = null; $wsdlLocation = "https://uat.xxxx.com/wsdl/customer.wsdl"; $cert = 'c:\Projects\***\certname.cer'; $client = new SoapClient($ws

我在用php和SoapClient调用websevrice时遇到一些问题。Web服务具有自签名证书

这是在windows 7上的wamp 2上运行的

代码如下:

<?php
    $client = null;

    $wsdlLocation = "https://uat.xxxx.com/wsdl/customer.wsdl";
    $cert = 'c:\Projects\***\certname.cer';
    $client = new SoapClient($wsdlLocation, array('local_cert' => $cert));

?>

我得到以下错误:

致命错误:未捕获的SoapFault异常:[WSDL]SOAP-error:解析WSDL:无法从加载'https://uat.xxx.com/wsdl/customer.wsdl“:未能加载外部实体”https://uat.xxx.com/wsdl/customer.wsdl“在C:\Projects**\auth\test.php:10堆栈跟踪:#0 C:\Projects**\auth\test.php(10):SoapClient->SoapClient('https://uat.ser...,数组)#1{main}在上的C:\Projects*\auth\test.php中抛出

第10行


有什么线索吗?我尝试了完整的和相对的路径。我很好奇有人告诉我使用这个.cer文件而不是.pem文件?我还将证书添加为证书存储中的受信任机构。

我还要注意,我可以在IE中查看wsdl,但我必须告诉chrome忽略它是自签名的事实。根据中的一条评论,如果使用https,SOAP模块需要配置openssl。