我在使用 SoapClient 调用 php 中的 websevrice 时遇到了一些问题。该网络服务有一个自签名证书。
这是在 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...', Array) #1 {main} 在 C:\Projects* \auth\test.php 中抛出
第 10 行
有什么线索吗?我已经尝试过完整和相对路径。我很好奇我被告知使用这个 .cer 文件而不是 .pem 文件这一事实?我还将证书添加为证书存储中的受信任机构。