SOAP-错误:正在解析 WSDL:无法从...加载 — SSL 配置错误?

问题描述 投票:0回答:1
每当通过 HTTPS 加载 WSDL 时,

SoapClient
都会引发此异常。但是,WSDL 文件可以通过 HTTPS 访问。既可以通过浏览器,也可以通过托管 SOAP 服务器本身的服务器上的
curl
。 Gzip 也不是问题,防火墙也不是问题。软件特定方面(Magento)也已尽可能排除。

尽管文件可用,但 SOAP 应用程序无法加载自己的 WSDL 文件可能是什么原因?有没有什么可以开始的?或者我应该再次开始深入研究 Magento 本身?

对我来说,一个不明确的 HTTP 500 错误被发回,如果它有任何相关性的话。

提前致谢!

php magento soap wsdl magento-soap-api
1个回答
0
投票

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

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

以下是解决所有问题的设置:

我的端点 (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 调用崩溃,而重做这一切将使其再次工作。可以肯定地说,这是我遇到的问题。

© www.soinside.com 2019 - 2024. All rights reserved.