使用Web服务时出错:SoapClient():SSL操作失败,代码为1


Error consuming Web Service: :SoapClient(): SSL operation failed with code 1

我正在尝试使用Web服务,我的朋友在windows7中使用xampp进行了测试,并且正在工作。他告诉我他安装了一个自签名证书。但我被卡住了,我得到了这个错误:

警告:SoapClient::SoapClient():SSL操作失败,代码为1。OpenSSL错误消息:错误:1408F119:SSL例程:SSL3_GET_RECORD:解密失败或错误记录第51行上/var/www/project/lib/Zend/Soap/Client/Common.php中的mac

警告:SoapClient::SoapClient():无法在第51行的/var/www/project/lib/Zend/Soap/Client/Common.php中启用加密

警告:SoapClient::SoapClient(https://url.com/webservice?wsdl):无法打开流:操作在第51行的/var/www/eph_me_113/lib/Zend/Soap/Client/Common.php中失败

警告:SoapClient::SoapClient():I/O警告:未能加载外部实体";https://url.com/webservice?wsdl"在第51行上的/var/www/eph_me_113/lib/Zend/Soap/Client/Common.php中

我试着用certutils这样的工具在我的机器上安装.cert:

http://blog.avirtualhome.com/adding-ssl-certificates-to-google-chrome-linux-ubuntu/

之后,我在浏览器中看到wsdl,但没有出现红色页面警告。浏览器告诉我,现在"实体是有效的"。但我仍然有同样的错误。

我也试着在我的客户端中添加这个。

$opts = array(
        'ssl'   => array(
                'verify_peer'          => false,
                'allow_self-signed' => true,                        
                'ciphers' => "SHA1"
            )
        );
        $streamContext = stream_context_create($opts);
$params = array(    
            'features' => SOAP_SINGLE_ELEMENT_ARRAYS,                
            'stream_context'     => $streamContext,
            'cache_wsdl' => NULL,                    
        );
$client = new SoapClient($url, $params);

我被困在这里了,所以,我希望有人能帮助我。

注意:我使用的是openssl 1.0.1e和Debian 7。

如果您碰巧有更高版本的

,请尝试降级到PHP 5.3