PHP Soap握手失败

时间:2015-09-10 06:35:01

标签: php web-services ssl soap

我遇到了这个问题:

我正在使用PHP SOAP的Web服务。在我的本地主机上一切正常,但是当我把它放在远程服务器上时,我收到了这个错误:

SoapClient::SoapClient(): SSL operation failed with code 1. 
OpenSSL Error messages: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

远程服务器正在HTTPS上运行。远程服务器使用PHP 5.3和本地主机PHP 5.5。有人知道它为什么在localhost上工作而不在远程服务器上?如果是这样,我该如何解决这个问题呢?我已经阅读了10多个问题,但没有一个有效,其中60%是JAVA而不是PHP。我将非常感谢任何形式的帮助,因为我试图将这个问题修复超过3天。这就是我称之为Web Service的方式:

$wsdl_url = 'https://somehost.com/someWebservice.wsdl';
$client = new SoapClient($wsdl_url, array('login' => $username, 'password' => $password, 'trace' => true));
编辑:我在远程服务器上使用另外3个Web服务,它们工作正常。这是为什么我不知道为什么这个不起作用的另一个原因。

1 个答案:

答案 0 :(得分:2)

所以我已经解决了握手失败的问题。这是由于PHP版本。一旦我升级到PHP 5.5它就解决了这个问题。