【问题标题】:SOAP-ERROR: Parsing WSDL: Couldn't load from ... — SSL misconfiguration?SOAP-ERROR: Parsing WSDL: Couldn't load from ... — SSL 配置错误?
【发布时间】:2016-06-22 21:24:38
【问题描述】:

SoapClient 在通过 HTTPS 加载 WSDL 时抛出此异常。但是,WSDL 文件可通过 HTTPS 获得。通过浏览器和托管 SOAP 服务器本身的服务器上的curl。 Gzip 也不是问题,防火墙也不是。软件特定方面 (Magento) 也已尽可能排除。

SOAP 应用程序无法加载自己的 WSDL 文件(尽管该文件可用)的原因可能是什么?甚至有任何开始吗?还是我应该重新开始研究 Magento 本身?

一个对我来说模棱两可的 HTTP 500 错误被发回,如果它有任何相关性的话。

提前致谢!

【问题讨论】:

  • 您使用的是什么网址?它是否通过正常的 http 加载?赛门铁克 SSL 检查器在 SSL 安装上报告什么? cryptoreport.websecurity.symantec.com/checker/views/… 怀疑是 SSL 或配置问题。如果 WSDL 通过 http 加载正常,那么它没有内在的理由不通过 h​​ttps 加载。
  • 另外,请检查您是否在前端的管理配置部分启用了安全 URL。
  • 安全 URL 已配置并强制执行。更具体地说,当 secure URL 设置为 HTTP URL 而不是 HTTPS URL 时,它可以工作。这能告诉你什么吗?

标签: php xml magento soap wsdl


【解决方案1】:

我终于让我的 Magento 2 SOAP API 与开发 SSL 证书一起工作。 我在我的 Apache 日志中发现了一个错误,导致我遇到了主要问题:

未捕获的异常:警告:SoapServer::SoapServer(): SSL 操作失败,代码为 1。OpenSSL 错误消息:\nerror:14090086:SSL 例程:ssl3_get_server_certificate:certificate verify failed

以下是清除这一切的设置:

我的端点 (SOAP) URL 使用 https。

我的整个 magento 商店都使用 https(用于不安全和安全之类的)。

我为 apache2 编辑了我的 php.ini 文件:

原行:openssl.cafile=

新版本:openssl.cafile=/my/path/to/dev.crt

重新启动 apache,清除 Magento 缓存,并且 php 还缓存 WSDL,因此需要运行“sudo rm -rf /tmp/wsd-*”才能看到结果(天哪!)。

如果您记得在进行这些更改后清除了 3000 个不同的缓存,那么您有望使用未经验证的开发证书通过 Magento 成功更新 SOAP。

我最终能够达到注释掉 openssl.cafile 行、清除 /tmp WSDL 缓存并重新启动 apache 会导致 SOAP 调用崩溃的地步,而重做这一切会使它再次工作。可以肯定地说,这就是我遇到的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 2015-06-29
    • 2015-05-08
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多