I am trying to configure a Soap client with the following code:
<?php $wsdl = 'https://domain.com/?wsdl'; $endpoint = 'https://domain.com'; $certificate = dirname(__FILE__) . '/CertWithKey.pem'; $password = 'pwd'; $options = array( 'location' => $endpoint, 'keep_alive' => true, 'trace' => true, 'local_cert' => $certificate, 'passphrase' => $password, 'cache_wsdl' => WSDL_CACHE_NONE ); try { $soapClient = new SoapClient($wsdl, $options); } catch(Exception $e) { var_dump($e); }
I was provided with a .p12 key file with a .crt certification file. Using openssl, I converted the .p12 file to a .pem file and then combined it with a .crt file. CertWithKey.pem looks good to me, two certificate files are in the file.
No matter what I try to do, I get an exception with the message SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://domain.com/?wsdl' : failed to load external entity "https://domain.com/?wsdl" .
After a call with the remote party, they acknowledge that the request is received, but they register this error: ssl handshake interrupted by system [hint: stop button pressed in browser?!] .
Since I have not found any useful information on the web so far, I decided to ask you guys to get some idea on this.
Any suggestions what you can try? I am running PHP 5.3.8, and the server IP address is white, specified in the firewall on the remote side.
source share