【问题标题】:WAMPServer craahes on wsdl load at https://WAMPServer 在 wsdl 上加载 https://
【发布时间】:2014-04-14 02:49:46
【问题描述】:

我刚刚下载了带有 Apache/2.4.4 (Win64) OpenSSL/1.0.1g PHP/5.4.12 的 wampserver。不是标准下载,原来的openssl版本太旧了。

我正在尝试创建一个新的 soapclient,但是当 wsdl 位于 ssl url 时,apache 崩溃而没有错误。

$wsdl = 'https://www.undisclosedlocation.com/wsdl/mywsdl.wsdl"; $sclient = new SoapClient($wsdl,array('trace'=>1));

没有命中,没有运行,没有错误。我得到的是: 连接被重置 加载页面时重置了与服务器的连接。

在浏览器上。即使在我的调试器中,我也只是“会话过早结束”

wsdl 在没有 ssl 的 url 上不可用,但是如果我将它复制到本地位置它可以工作,但是所有命名空间都关闭了。

我正在使用自签名证书,但又遇到了一个错误。

[Sun Apr 13 22:45:50.192400 2014] [ssl:warn] [pid 19:tid 76] AH01909:为 mydomain:443 配置的 RSA 证书不包含与服务器名称匹配的 ID

【问题讨论】:

    标签: https wsdl wampserver win64


    【解决方案1】:

    看来问题出在您的证书上。至少有两个问题:

    1. 自签名证书,您的客户不信任该证书
    2. 证书不包含您网站的 DNS 名称

    当其中一个错误发生时,大多数系统都会放弃连接。

    尝试在之前添加以下设置:

    $context = stream_con**strong text**text_create(array(
        'ssl' => array(
            'verify_peer' => false,
            'allow_self_signed' => true
         )
    ));
    

    请参阅以下 Stackoverflow 问题:Disable certificate verification in PHP SoapClient

    【讨论】:

    • 具有 wsdl 的服务器具有良好的证书,它是我正在运行的客户端,它具有自签名客户端。如果我不使用 new mySoap($wsdl, array()) 那么 wsdl 似乎没有被解析,并且对 wsdl 中方法的任何调用都会失败。除非我不了解选项数组中如何使用“位置”和“URI”。
    猜你喜欢
    • 2019-04-04
    • 2016-07-08
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 2014-10-10
    • 2016-12-05
    相关资源
    最近更新 更多