如何让PHP连接到TLSv1.2只有网站
问题描述:
我想连接使用PHP中的curl到Pronto Cycle Share(使用PHP 5.6.2)。此网站在浏览器和命令行卷曲中工作。根据SSL Labs,它只接受TLS 1.2。如何让PHP连接到TLSv1.2只有网站
在PHP中,使用curl(版本7.28.1)PHP未能协商并给了我Curl error: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
使用的file_get_contents,代码:
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT
],
]);
$html = file_get_contents($url, false, $ctx);
返回:
Message: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
print_r(OPENSSL_VERSION_TEXT)
OpenSSL 0.9.8r 2011年2月8日,所以这是相当古老的。我在Mac上使用MAMP PRO。
有什么办法可以使用简单的PHP方法连接到这个服务器?
的可能的复制[TLS 1.2卷曲不工作(http://stackoverflow.com/questions/30145089/tls-1-2-not-working-in-curl) – miken32 2016-01-21 22:22:19
根据为了回答这个问题,你的OpenSSL需要1.0.1或者更高才能支持TLS 1.2。 – miken32 2016-01-21 22:23:45