Recibo esta excepción de error:

Error de PayPal \ Exception \ PayPalConnectionException 'con mensaje': 14077410: rutinas SSL: SSL23_GET_SERVER_HELLO: error de protocolo de enlace de alerta sslv3

De mi sitio web de prueba.

Estoy usando Paypal sdk para ejecutar un pago simple (como el ejemplo que tienen. En mi servidor de prueba localmente funciona bien).

He probado varias soluciones que encontré pero no tuve suerte.

Me puse en contacto con mi proveedor de alojamiento web y le dije que son compatibles con tls 1.2 y que es un problema de codificación de mi parte.

Las versiones de curl del servidor web son: 7.15.5 y openssl: 0.9.8b

Por lo que busqué en línea, muchas personas dijeron que estas versiones no son compatibles con tls 1.2. ¿Añadió la capacidad hacia atrás?

También ejecuto esta prueba, pero no estoy segura de si la estoy leyendo correctamente: También ejecuto esta prueba, pero no estoy seguro de si la estoy leyendo correctamente:

Editar: El servidor finalmente confirmó que no admiten esto y también dijeron que este servidor no se puede actualizar, por lo que se ofrecieron a moverme a uno que admita esto. Gracias por toda tu ayuda.

1
uses134 27 ene. 2016 a las 23:27

2 respuestas

La mejor respuesta

La compatibilidad con TLS1.2 no se agregó en openssl hasta 1.0.1, 14 de marzo de 2012.

https://www.openssl.org/news/changelog.html#x19

Necesita actualizar SSL en su servidor y educar a su anfitrión o encontrar uno nuevo.

Nos enfrentamos a esto en agosto (estábamos en 0.9.8-e-fips-rhel5); actualizar SSL hizo el truco.

1
Kevin_Kinsey 27 ene. 2016 a las 20:48

Para agregar a lo que dijo @Kkinsey, parece que su host está usando CentOS / RHEL 5 (que se acerca al final de su vida útil). CentOS 6, aunque contiene el nivel más alto de openssl, aparentemente no es capaz de negociar automáticamente TLS 1.2. CentOS 7 por alguna razón puede.

curl -v https://api-3t.sandbox.paypal.com/nvp

  • A punto de conectarse () a api-3t.sandbox.paypal.com puerto 443 (# 0)
  • Intentando 173.0.82.83 ... conectado
  • Conectado a api-3t.sandbox.paypal.com (173.0.82.83) puerto 443 (# 0)
  • Inicializando NSS con certpath: sql: / etc / pki / nssdb
  • CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: ninguno
  • Error de NSS -12286
  • Cerrando la conexión # 0
  • Error de conexión SSL curl: (35) error de conexión SSL

Tienes que forzar el CURL de PHP para usar TLS 1.2. Una vez que haya actualizado su paquete OpenSSL (haciendo esto en 0.9.8 SE ROMPERÁ), deberá agregar esto a su solicitud CURL

curl_setopt($ch, CURLOPT_SSLVERSION, 6);
0
Machavity 28 ene. 2016 a las 16:54