|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-03-04 21:13 UTC] rdlowrey@php.net
-Status: Open
+Status: Not a bug
[2015-03-04 21:13 UTC] rdlowrey@php.net
[2015-03-05 03:53 UTC] dallas at ekkysoftware dot com
[2016-03-01 08:34 UTC] marko at techytalk dot info
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Dec 04 05:00:01 2025 UTC |
Description: ------------ When connecting to a soapclient to a soapserver via ssl. Everything works correctly when over http, but when moving to https it all fails. It was working when the ssl certificate/host was the default and did not require a SNI. Additionally if we flip the wsdl on the server side to http, then the client can connect sometimes - intermittent. wget and curl are both able to access the wsdl via https and I can copy the wsdl to a local file and the SoapServer will still not load from a local file. Server is setup as a virtual host where the host is not the default. When it was the default, the soap connection work correctly via https. Best guess is something is connection over ssl with ip 127.0.0.1, without an SNI and is getting the wrong certificate, preventing successful connection. Test script: --------------- I have tried all the options such as: $context = stream_context_create(array( 'ssl' => array('SNI_server_name' => parse_url($this->_wsdl, PHP_URL_HOST),'SNI_enabled' => TRUE, 'peer_name' => parse_url($this->_wsdl, PHP_URL_HOST),'verify_peer' => false, 'allow_self_signed' => true), )); $options['stream_context'] = $context; $options['ssl'] = array('ciphers'=> "SHA1",'verify_peer' => false, 'allow_self_signed' => true, 'peer_name' => parse_url($this->_wsdl, PHP_URL_HOST),'curl_verify_ssl_peer'=>false,'curl_verify_ssl_host' => false); $options['https'] = array('ciphers'=> "SHA1",'verify_peer' => false, 'allow_self_signed' => true, 'peer_name' => parse_url($this->_wsdl, PHP_URL_HOST),'curl_verify_ssl_peer'=>false,'curl_verify_ssl_host' => false); $server = new SoapServer($this->_wsdl,$options); Actual result: -------------- [13-Sep-2014 07:47:57 UTC] PHP Warning: SoapServer::SoapServer(): SSL: Success in /home/plaza/public_html/lib/Zend/Soap/Server.php on line 826 [13-Sep-2014 07:47:57 UTC] PHP Warning: SoapServer::SoapServer(): Failed to enable crypto in /home/plaza/public_html/lib/Zend/Soap/Server.php on line 826 [13-Sep-2014 07:47:57 UTC] PHP Warning: SoapServer::SoapServer(https://www.plazapinger.com/index.php/api/soap/index/?wsdl=1): failed to open stream: operation failed in /home/plaza/public_html/lib/Zend/Soap/Server.php on line 826 [13-Sep-2014 07:47:57 UTC] PHP Warning: SoapServer::SoapServer(): I/O warning : failed to load external entity "https://www.plazapinger.com/index.php/api/soap/index/?wsdl=1" in /home/plaza/public_html/lib/Zend/Soap/Server.php on line 826 [13-Sep-2014 07:47:57 UTC] PHP Notice: SoapServer::SoapServer(): failed to discard buffer. No buffer to discard in /home/plaza/public_html/lib/Zend/Soap/Server.php on line 826 [13-Sep-2014 07:47:57 UTC] PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://www.plazapinger.com/index.php/api/soap/index/?wsdl=1' : failed to load external entity "https://www.plazapinger.com/index.php/api/soap/index/?wsdl=1" in /home/plaza/public_html/lib/Zend/Soap/Server.php on line 826