Help with Soapclient 1.2

James Murphy
James Murphy used Ask the Experts™

Given the below soapclient - how can I a) check the version of tls that it is using, and b set it to 1.2 if it is not using that already?  I had assumed the browser I was using would control that side of things, but just want to double check!

$url = "https://www.SOMEURL/interface/api/report.asmx?wsdl";
//Create the client
$client = new SoapClient($url);
$datetimestamp = date("YmdHis");
$reportname = "report".$datetimestamp;

Open in new window

your help is very much appreciated!

Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
The version of TLS should be automatically applied based on the version of OpenSSL (assuming that's the crypto library you're using) used when building PHP. However, you can set the stream context to tell it to force TLS 1.2:

$settings = array();
$settings['stream_context'] => stream_context_create(
  array('ssl' => array('crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT))
$client = new SoapClient($url, $settings);

Open in new window

Just be aware that if you DON'T have OpenSSL 1.0.1 or higher, it doesn't matter what code you use - the engine won't have the understanding of how to "speak" in TLS 1.2.

Oh, and to answer the other part of your question, there's not a very easy way to check which version is actually being used. Whenever I'm testing the SSL protocol being used, I install Wireshark on the client or server (whatever machine is initiating the connection), and then capture the connection attempt. The headers in the TCP packet will tell you the protocol being used.


Thank you! Your help is very much appreciated!!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial