php使用curl擴展請求HTTPS連接報sslv3 alert 錯誤

報錯信息

使用php的curl請求https連接時報"error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure" 錯誤php

緣由分析

使用php的curl擴展時,curl_setop的CURLOPT_SSLVERSION取值爲3,對應協議爲ssl v3,由於以前的POODLE 病毒爆發,許多網站禁用了sslv3(nginx默認是禁用的,ssl_protocols 默認值爲TLSv1 TLSv1.1 TLSv1.2;)linux

解決辦法

nginx

curl_setopt($ch, CURLOPT_SSLVERSION, 3);

改成curl

curl_setopt($ch, CURLOPT_SSLVERSION, 4);

CURLOPT_SSLVERSION 取值及含義

  • CURL_SSLVERSION_TLSv1_2 須要php版本>=5.5.19
  • TLS 1.1 and TLS 1.2 are supported since OpenSSL 1.0.1
CURL_SSLVERSION_DEFAULT (0)
CURL_SSLVERSION_TLSv1 (1),
CURL_SSLVERSION_SSLv2 (2), 
CURL_SSLVERSION_SSLv3 (3),
CURL_SSLVERSION_TLSv1_0 (4),
CURL_SSLVERSION_TLSv1_1 (5),
CURL_SSLVERSION_TLSv1_2 (6).

REF

function.curl-setoptide

tls-1-2-not-working-in-curl網站

php-35-error14094410ssl-routinesssl3-read-bytessslv3-alert-handshake-failururl

when-was-tls-1-2-support-added-to-openssl.net

how-to-disable-sslv3-in-linuxcode

相關文章
相關標籤/搜索