Verificar si curl usa TLS

En mi aplicación PHP utilizo CURL y openssl de PHP, para conectar y hablar usando SOAP. Hasta ahora, el servidor remoto soportaba SSL y TLS, pero debido a un error de “poodle”, el administrador decidió deshabilitar SSL y usar solo TLS. SSL es compatible hasta el final de enero.

Cambié mi código agregando:

curl_setopt($objCurl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); 

Que en teoría debería obligar a Curl a usar TLSv1.2.

Pero esa es la teoría, necesito verificar que realmente usa TLS, ¿hay algún método para eso? Hay un método llamado curl_getinfo (), pero la información que devuelve no es útil para mí:

 [url] => https://www.example.com/soap/MessagingPort [content_type] => text/xml;charset=utf-8 [http_code] => 200 [header_size] => 293 [request_size] => 882 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.164487 [namelookup_time] => 3.4E-5 [connect_time] => 3.4E-5 [pretransfer_time] => 0.000122 [size_upload] => 604 [size_download] => 178 [speed_download] => 1082 [speed_upload] => 3672 [download_content_length] => 178 [upload_content_length] => 604 [starttransfer_time] => 0.164477 [redirect_time] => 0 

Muchas gracias de antemano

Respuesta corta

Realice una solicitud con curl a https://www.howsmyssl.com/

 tls_version; 

eso debería dar salida a qué versión de TLS se utilizó para conectarse.

Cavar más profundo

Curl se basa en la biblioteca subyacente de OpenSSL (o NSS) para negociar la conexión segura. Así que creo que la pregunta correcta para hacer aquí es qué es capaz la biblioteca OpenSSL. Si puede manejar una conexión TLS, entonces curl puede manejar una conexión TLS.

Entonces, ¿cómo averiguar de qué es capaz la biblioteca openssl (o NSS)?

  

que va a arrojar algo así como

 OpenSSL/1.0.1k 

Luego puede ir y echar un vistazo a las notas de la versión para esa versión y ver si incluye compatibilidad con TLS.

Notas de la versión de OpenSSL - https://www.openssl.org/news/openssl-1.0.1-notes.html

Notas de la versión de NSS - https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases

Alerta de spoiler

  • openssl incluye soporte para TLS v1.1 y TLS v1.2 en OpenSSL 1.0.1 [14 de marzo de 2012]
  • NSS incluye soporte para TLS v1.1 en 3.14
  • NSS incluye soporte para TLS v1.2 en 3.15