Я пытаюсь использовать веб-службы, мой друг тестировался в Windows 7 с помощью xampp и работает. Он сказал мне, что он установил самозаверяющий сертификат. Но я застрял, я получаю эту ошибку:
Предупреждение: SoapClient :: SoapClient (): операция SSL завершилась неудачно с кодом 1. OpenSSL Сообщения об ошибках: ошибка: 1408F119: SSL-процедуры: SSL3_GET_RECORD: дешифрование с ошибкой или неудачная запись mac в / var / www / project / lib / Zend / Soap / Client /Common.php в строке 51
Предупреждение: SoapClient :: SoapClient (): Не удалось включить криптографию в /var/www/project/lib/Zend/Soap/Client/Common.php в строке 51
Предупреждение: SoapClient :: SoapClient ( https://url.com/webservice?wsdl ): не удалось открыть поток: операция завершилась неудачно в /var/www/eph_me_113/lib/Zend/Soap/Client/Common.php в строке 51
Предупреждение: SoapClient :: SoapClient (): предупреждение ввода-вывода: не удалось загрузить внешний объект « https://url.com/webservice?wsdl" ; in / var / www / eph_me_113 / lib / Zend / Soap / Client / Common. php в строке 51
Я попробовал установить .cert в своей машине с помощью таких инструментов certutils:
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, если у вас есть более высокая версия