【问题标题】:PHP Soap Client cannot load https wsdl linkPHP Soap 客户端无法加载 https wsdl 链接
【发布时间】:2020-02-09 02:38:26
【问题描述】:

我一直在尝试通过 php soapclient 加载特定的 https wsdl。 我得到的错误是:

SOAP-ERROR:解析 WSDL:无法从“https://xxxx.com?wsdl”加载:无法加载外部实体“https://xxxx.com?wsdl” 此外,我也尝试“卷曲https://xxxx.com?wsdl”。我得到的错误是:

curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too 小

我可以通过浏览器查看特定的 wsdl。使用 http 而不是 https 的 curl 返回正确的响应。

奇怪的是,我的同事在他的机器上安装了 ubuntu 18.04,他没有任何问题。供您参考,我安装了 debian 10,并且我们的 IP 地址相同。

我真的不明白问题出在哪里。

【问题讨论】:

    标签: php curl soap openssl wsdl


    【解决方案1】:

    您应该在构造 SoapClient 实例时尝试禁用证书验证

    $context = stream_context_create([
        'ssl' => [
            // set some SSL/TLS specific options
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        ]
    ]);
    
    $client  = new SoapClient($url, [
        ... ( other params )
        'stream_context' => $context
    ]);
    

    如果你从命令行使用 curl,你可以使用 --insecure/-k 标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-03
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多