PHP SoapClient 是否支持 HTTPS 连接
我在 Windows 上使用 XAMPP 并尝试使用 PHP soap 扩展 SoapClient.我正在尝试使用以下代码加载托管在 HTTPS 站点中的 WSDL 文件
我收到以下错误:
<块引用>致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP 错误:解析 WSDL:无法从
我在使用 php 5.6 的 Windows 上遇到了同样的问题,并且在使用 php 5.6 的 Linux 上运行良好.
您可以使用openssl_get_cert_locations函数来查看证书位置是什么.
到目前为止,我无法找到解决方案.
I'm using XAMPP on Windows and try to work with PHP soap extension SoapClient. I'm trying to load a WSDL file hosted in HTTPS site using the following code
<?php
$myClient=new SoapClient("https://smi.sp.f-secure.com/smi/5.1/services/EchoService?wsdl");
?>
I get the following error:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://smi.sp.f-secure.com/smi/5.1/services/EchoService?wsdl' : failed to load external entity "https://smi.sp.f-secure.com/smi/5.1/services/EchoService?wsdl" in C:xampphtdocsdevw3schoolssoapClientindex.php:2 Stack trace:
#0 C:xampphtdocsdevw3schoolssoapClientindex.php(2): SoapClient->SoapClient('https://smi.sp....')
#1 {main} thrown in C:xampphtdocsdevw3schoolssoapClientindex.php on line 2
Now I took a network capture during the request and saw that HTTPS communication does not work OK on SSL Level. Wireshark shows a packet on Server Key Exchange my workstation responds with:
TLSv1 Record Layer: Alert (Level: Fatal, Description: Certificate Unknown)
Using nuSOAP client or soapUI utility from the same computer, I'm able to connect to the service normally. So no certificate problems I guess.
So definately it's something with SOAP extension and SSL communication. Can anyone help? Give hints what to look for?
解决方案it has to do with this change in php 5.6: http://php.net/manual/en/migration56.openssl.php
I have the same trouble on Windows with php 5.6 and it works fine on Linux with php 5.6.
You can use the function openssl_get_cert_locations to see what are the certificate locations.
So far I wasn't able to find a solution.
相关文章