【问题标题】:PHP7 cURL and SOAP request SSL failingPHP7 cURL 和 SOAP 请求 SSL 失败
【发布时间】:2023-03-17 12:10:02
【问题描述】:

我在带有 ubuntu 16.04 的流浪虚拟机中使用 PHP 7.0.25

我需要向这个 SOAP API 发出请求: https://ws.ocasa.com/testecommerce/service.asmx?wsdl

php curl 和 SoapClient 都失败了

使用 SoapClient 我正在这样做(也尝试过没有任何选项,只有 cache_wsdl 部分):

$options = array(
    'cache_wsdl' => 0,
    'trace' => 1,
    'stream_context' => stream_context_create(array(
          'ssl' => array(
               'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
          )
    ))
);

$wsdl = 'https://ws.ocasa.com/testecommerce/service.asmx?wsdl';
$client = new \SoapClient( $wsdl, $options);

给我这个错误:

[SoapFault]
SOAP-ERROR:解析 WSDL:无法从 'https://ws.ocasa.com/testecommerce/service.asmx?wsdl' : 失败 加载外部实体“https:
//ws.ocasa.com/testecommerce/service.asmx?wsdl"

使用 php curl 我最终收到此错误:

连接到 ws.ocasa.com:443 的未知 SSL 协议错误

我无法从 linux curl 命令行毫无问题地获取页面(当然是从 VM 内部)

curl -I https://ws.ocasa.com/testecommerce/service.asmx?wsdl -v

SSL 连接使用 TLS1.0 / RSA_3DES_EDE_CBC_SHA1

我测试了添加

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

还尝试添加 CA 证书:(还尝试在 php.ini 中添加它们)

curl_setopt($ch, CURLOPT_CAINFO, '/vagrant/cacert.pem');

非常奇怪的是,我可以毫无问题地 curl 其他一些 https 站点,例如 secure.php.netusgin php curl。

此外,没有“http”版本可以解决整个 SSL 问题。

有什么想法吗?我可能缺少一些依赖项? openssl 已安装。

感谢您的宝贵时间。

【问题讨论】:

    标签: php web-services ssl curl soap


    【解决方案1】:

    嗯,我找到了一个解决办法...

    使用 curl(CURLOPT_SSLVERSION 与众不同)

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $wsdl);
    curl_setopt($ch, CURLOPT_POSTFIELDS,  $xml); // $xml is the envelope (string)
    curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_0);
    

    即使使用 SOAP_SSL_METHOD_TLS 选项,我也无法让 SoapClient 工作。 我会将其标记为已解决,但如果有人发现如何使其与 SoapClient 一起使用,那将是真正的答案。

    This 帮助我提出了请求(不是 ssl 部分)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-01
      • 2016-08-15
      • 2018-09-29
      • 2019-10-05
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多