2016-01-27 29 views
6

Yeni bir PayPal test bitiş noktasına karşı test çalışıyorum: https://tlstest.paypal.com.PayPal TLS Test URL - PHP curl SSL protokol hatası

Bu sayfanın en altına bakın: TLS 1.2 and HTTP/1.1 Upgrade Microsite (Doğrulayın ...).

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://tlstest.paypal.com'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FAILONERROR, true); 
curl_setopt($ch, CURLOPT_SSLVERSION, 6); // CURL_SSLVERSION_TLSv1_2 
$result = curl_exec($ch); 
echo 'result = '.$result.'<br>'; 
echo 'errno = '.curl_errno($ch).'<br>'; 
echo 'error = '.curl_error($ch).'<br>'; 
curl_close($ch); 

I:

Ben PHP (5.3.28) ve curl kullanıyorum (7.30.0 - - OpenSSL/0.9.8y libssh2/1.4.2), Windows Server 2008 R2 ve 7.5 IIS Bu hatayı alıyorum:

Openssl must be at 1.0.1 or higher for TLS 1.2.

Bu doğru ..: birisi diyor ki Github - Unknown SSL protocol error:

35 Unknown SSL protocol error in connection to tlstest.paypal.com:443

bunu buldum?

PHP OpenSSL'm sürümde: OpenSSL/0.9.8y (from phpinfo()).

sonra muhtemelen daha az OpenSSL sürümü (Ben bu çok fazla tahmin ediyorum!) Ile PHP çalıştıran her sunucu herhangi bir PayPal API en kullanmak mümkün olmayacaktır ya olacak TLS 1.2 kullanmak OpenSSL'yi 1.0.1 veya daha yüksek ihtiyacın varsa Yakında PayPal IPN.

nasıl Windows üzerinde benim PHP OpenSSL sürümünü güncellemek mi ..?

cevap

1

ben bu şimdi çalışıyor. TLS 1.2 için gerekli olan en az OpenSSL/1.0.1i sanki gibi görünüyor.

PHP sürümümü, OpenSSL sürüm 1.0.1'e yükselten 5.6.0'a yükselttim.

  1. Kullanım curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); sertifikasını doğrulamak için:

    Ben de bu gerekli. Varsayılan, cURL 7.10’dan itibaren true’dur.

  2. kaydet cacert.pem lokal http://curl.haxx.se/docs/caextract.html dan (c benim durumumda: sertifika \), o zaman cacert.pemas shown here başvurmak için kullandığınız PHP ini güncellemek. Ini dosyasının kullanılması, her çağrıda curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '\cacert.pem');'u kullanmanız gerektiğinden tasarruf etmenizi sağlar.
+0

PHP 5.6'ya yükselttikten sonra, SSL sürümü kendiniz bir SSL sürümü belirtmeden başarıyla tamamlandı mı? Curl versiyonunu da güncellediniz mi, yoksa hala 7.30 mu? –

+0

SSL versiyonunu bıraktım, onsuz çalışıp çalışmadığından emin değilim, yakında deneyebilirsiniz ... cURL verson şimdi 7.36.0, PHP 5.6.0 ile geliyor gibi görünüyor. –