无法通过HTTPS访问SOAP Web服务

时间:2012-05-08 21:22:07

标签: php apache soap ssl nginx

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

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

SOAP-ERROR:解析WSDL:无法从...加载:无法加载外部实体...

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

  • 如果我尝试通过HTTPS通过浏览器访问WSDL,它可以正常工作。如果我尝试访问其中一个SOAP端点URL,那么我会收到错误消息。

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

1 个答案:

答案 0 :(得分:2)

我想指出这可能与你的nginx配置有关,对于SSL来说,有几个好点可以开始寻找:

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

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