我浏览网了三天,我仍然无法解决我的问题...这就是为什么我要求你的帮助:)
我尝试使用自签名证书通过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);
我试过了 :
此外,我使用以下命令“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的攻击。在将此作为解决方案之前,请确保完全了解安全问题。