php ssl curl paypal

php - Error 0x1408F10B: "SSL3_GET_RECORD: número de versión incorrecta" con el SDK de PayPal



curl (3)

Para las personas que usan https://github.com/Quixotix/PHP-PayPal-IPN , simplemente configure false para forzar_ssl_v3:

$listener = new IpnListener(); $listener->force_ssl_v3 = false;

Parece que PayPal podría haber actualizado sus sistemas a la luz del attack POODLE , causando que los sitios que usan PHP PayPal SDK se rompan.

Me sale el error:

PayPal/Exception/PPConnectionException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number /var/www/site/vendor/paypal/sdk-core-php/lib/PayPal/Core/PPHttpConnection.php:91 /var/www/site/vendor/paypal/sdk-core-php/lib/PayPal/Core/PPAPIService.php:66 /var/www/site/vendor/paypal/sdk-core-php/lib/PayPal/Core/PPBaseService.php:82 /var/www/site/vendor/paypal/adaptivepayments-sdk-php/lib/PayPal/Service/AdaptivePaymentsService.php:97

¿Qué recomendarías para solucionar esto, sin comprometer la seguridad?



ACTUALIZACIÓN : Como señaló Jaffer, el repositorio GitHub de PayPal ya ha github.com/paypal/rest-api-sdk-php/pull/127 continuación, por lo que puede actualizar su SDK.

Al menos esto parece funcionar por ahora, aunque tendré que investigar qué protocolo usará en realidad.

/PayPal/Core/PPHttpConfig::$DEFAULT_CURL_OPTS[CURLOPT_SSLVERSION] = 1; // 0 = default protocol (likely TLSv1), 1 = TLSv1; unsafe: 2 = SSLv2, 3 = SSLv3

Para otras personas que usan cURL directamente, simplemente use

curl_setopt($handle, CURLOPT_SSLVERSION, 1);

ACTUALIZAR:
Solo busqué la fuente en cURL , estos son los valores ( // comentarios míos):

enum { CURL_SSLVERSION_DEFAULT, // 0 CURL_SSLVERSION_TLSv1, // 1 CURL_SSLVERSION_SSLv2, // 2 CURL_SSLVERSION_SSLv3, // 3 CURL_SSLVERSION_LAST /* never use, keep last */ // 4 };

Entonces, para resumir, sí, 1 es TLSv1 y, a juzgar por el comentario, es probablemente mejor que 4.
Código actualizado arriba.