Мне нужна интеграция веб-сайта моей компании с внешними веб-сервисами, для которых требуются Curl и TLS 1.2.
Я включил php_curl.dll и установил curl.cainfo с правильным путем к файлу pem на php.ini.
Теперь curl работает, но только с TLS 1.0, даже если для параметра CURLOPT_SSLVERSION установлено значение 6:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "https://www.howsmyssl.com/a/check");
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_SSLVERSION, 6);
Я работаю на сервере WAMP с Apache 2.4, PHP 5.4.16 - MSVC9 - NTS - CGI / FastCGI.
Прокрутка страницы phpinfo (), в разделе «Переменные PHP» я вижу
_SERVER["SERVER_SOFTWARE"] Apache/2.4.10 (Win32) OpenSSL/1.0.1j mod_fcgid/2.3.9
_SERVER["SSL_VERSION_LIBRARY"] OpenSSL/1.0.1j
пока я в разделе "openssl" вижу
OpenSSL Library Version OpenSSL 0.9.8y 5 Feb 2013
OpenSSL Header Version OpenSSL 0.9.8y 5 Feb 2013
и в секции "curl":
cURL support enabled
cURL Information 7.30.0
SSL Yes
SSL Version OpenSSL/0.9.8y
Может кто-нибудь сказать мне, почему PHP использует OpenSSL 1.0.1j и Curl 0.9.8y?
Как установить Curl на TLS 1.2 без обновления PHP?