PHP SoapClient over selfsigned证书,SOAP-ERROR:解析WSDL:cand';t从';https://

PHP SoapClient over selfsigned证书,SOAP-ERROR:解析WSDL:cand';t从';https://,php,soap,https,certificate,self-signed,Php,Soap,Https,Certificate,Self Signed,我在网上浏览了三天,仍然无法解决我的问题。。。这就是我请求你帮助的原因:) 我尝试使用自签名证书通过https调用web服务,但得到以下错误:SOAP-error:解析WSDL:无法从加载'https://... 我的代码: $streamContext = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'allow_self_signed' =>

我在网上浏览了三天,仍然无法解决我的问题。。。这就是我请求你帮助的原因:)

我尝试使用自签名证书通过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);
我试图:

  • 更改“验证对等”和“允许自签名”选项的值
  • 在stream_上下文数组中将“ssl”密钥替换为“https”
  • 本地加载WSDL文件,但出现以下错误:无法连接到主机(我的端点:)
  • 清除我的客户端缓存
  • 使用Zend_Soap_客户端和nusoap库
此外,我使用以下命令“ping DOMAIN”和“telnet DOMAIN 443”检查了客户端和服务器之间的连接,一切正常

似乎忽略了“stream_context”选项,或者问题在别处?! 这是一个php错误吗

所有建议将不胜感激。
Thx

我遇到了一个非常类似的问题,我在流上下文中添加了
'verify\u peer\u name'=>false
。所以

$streamContext=stream\u context\u创建(数组)(
“ssl”=>数组(
“验证对等方”=>false,
'verify_peer_name'=>false,
“允许自签名”=>true
)
));
编者按:禁用SSL验证具有安全隐患。如果不验证SSL/HTTPS连接的真实性,恶意攻击者可以模拟受信任的端点(如GitHub或其他远程Git主机),您将容易受到攻击在将其用作解决方案之前,请确保您完全了解安全问题。


你能用浏览器打开url吗?还是运行php的服务器上的WGET?您的web服务器配置正确吗?它不仅必须侦听端口443上的连接,还必须具有关于服务器证书等的正确设置。嗨,Greg,我可以在绕过安全性时使用浏览器打开WSDL(NET::ERR\u CERT\u AUTHORITY\u INVALID)。我可以在php服务器上使用wget命令下载WSDL,但只能使用“无检查证书”选项。不幸的是,我没有手来设置或检查web服务器设置……php手册中有一条说明:底层套接字流上下文选项http://streams的底层传输可能支持其他上下文选项,请参阅tcp://transport的上下文选项。有关https://streams,请参阅ssl://transport的上下文选项。您在xml中使用的是http://和https://所以请尝试为https设置上下文选项。您好,Greg,谢谢您的评论。我试图用“https”和“http”替换“ssl”密钥,不幸的是,我得到了相同的错误…你能发布你的wsdl文件吗?