我需要将公司网站与需要Curl和TLS 1.2的外部Web服务集成。
我启用了php_curl.dll,并在php.ini上使用正确的pem文件路径设置curl.cainfo。
现在卷曲正在工作,但仅在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);
我正在使用Apache 2.4,PHP 5.4.16-MSVC9-NTS-CGI / FastCGI在WAMP服务器上工作。
在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 support enabled
cURL Information 7.30.0
SSL Yes
SSL Version OpenSSL/0.9.8y
有人可以告诉我为什么PHP使用OpenSSL 1.0.1j和Curl 0.9.8y吗?
如何在不升级PHP的情况下在TLS 1.2上设置Curl?