PHP SoapClient over selfsigned certificate,SOAP-ERROR:解析WSDL:无法从'https://加载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP SoapClient over selfsigned certificate,SOAP-ERROR:解析WSDL:无法从'https://加载相关的知识,希望对你有一定的参考价值。
我浏览网了三天,我仍然无法解决我的问题...这就是为什么我要求你的帮助:)
我尝试使用自签名证书通过https调用Web服务,我收到以下错误:SOAP-ERROR:解析WSDL:无法从'https://加载...
我的代码:
$streamContext = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'allow_self_signed' => true
)
));
$client = new SoapClient("https://DOMAIN/ws.php?wsdl", array(
'trace' => true,
'stream_context' => $streamContext
));
$client->method($params);
我试过了 :
- 更改“verify_peer”和“allow_self_signed”选项的值;
- 将“ssl”键替换为stream_context数组中的“https”;
- 在本地加载WSDL文件,但是我收到以下错误:无法连接到主机(我的端点:https://DOMAIN/ws.php);
- 清除我的客户端缓存;
- 使用Zend_Soap_Client和nusoap库。
此外,我使用以下命令“ping DOMAIN”和“telnet DOMAIN 443”检查了客户端和服务器之间的连接,一切正常。
似乎忽略了“stream_context”选项或问题出在其他地方?!这是一个php Bug吗?
所有建议将不胜感激。谢谢
我有一个非常类似的问题,我在流上下文中添加了'verify_peer_name' => false
。所以...
$streamContext = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
));
编者注:禁用SSL验证具有安全隐患。如果不验证SSL / HTTPS连接的真实性,恶意攻击者可以冒充受信任的端点(例如GitHub或其他一些远程Git主机),并且您将容易受到Man-in-the-Middle Attack的攻击。在将此作为解决方案之前,请确保完全了解安全问题。
以上是关于PHP SoapClient over selfsigned certificate,SOAP-ERROR:解析WSDL:无法从'https://加载的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将元素名称映射到 php 类(SoapClient)
php调用webservice报错Class 'SoapClient' not found(转)