2

我想要做的是使用 SSL 访问一个 Web 服务(我构建的)。它似乎没有工作。一些相关信息:

  • 使用 HTTP 一切正常。仅当我使用 HTTPS 时才会出现此问题。
  • 输出的实际错误消息如下:

SOAP-ERROR: Parsing WSDL: Couldn't load from ... : failed to load external entity ...

  • 该服务是用 PHP 实现的。
  • 如果我运行 php -m 或检查 phpinfo() openssl 似乎安装正确。
  • 否则 SSL 证书似乎工作正常。我可以在网站的其余部分使用 HTTPS;只是 Web 服务有问题。

  • 如果我尝试通过浏览器通过 HTTPS 访问 WSDL,它工作正常。如果我尝试访问 SOAP 端点 URL 之一,则会收到错误消息。

  • 我编写了一个最小化的 PHP 脚本来尝试对服务进行实际调用。当尝试检索 WSDL 本身时,它将收到错误消息。
  • Web 服务器是在 Debian 上运行的 Apache
  • 这似乎不是代码问题。我在开发服务器上运行了类似的代码,它在那里运行良好,即使使用 HTTPS。
  • 生产系统运行在代理系统上,前面有 nginx。似乎这很可能与该问题有关,但不知道从哪里开始解决该问题。
4

1 回答 1

2

我想指出这可能与您的 nginx 配置有关,对于 SSL,有几个不错的地方可以开始寻找:

  1. 验证你在 nginx 上的监听端口是 443
  2. 验证您的代理位置是 127.0.0.1:80(端口 80,因为它是 HTTP,除非您自定义它)
  3. 如果您使用的是 CentOS,我发现 iptables 是许多问题的罪魁祸首。有时我只是忘记在防火墙中打开端口 443。要进行配置,请转到/etc/sysconfig/iptables/并添加防火墙规则。

最后但并非最不重要....

我找到了这个关于 SOAP over SSL 的漂亮指南 :) http://soapoverhttps.blogspot.ca/

于 2012-05-13T02:52:19.910 回答