error: 14094410: rutinas SSL: SSL3_READ_BYTES: error de protocolo de enlace de alerta sslv3 (35)

9

Tenemos un sitio de compras en línea. Cuando voy a la página de pago, recibo un error como este "error: 14094410: rutinas SSL: SSL3_READ_BYTES: error de apretón de manos de alerta sslv3 (35)"

Desde el registro de errores de apache puedo ver algunos intentos de conexión a api.paypal.com. Aquí está la parte de mi registro de errores de apache

* About to connect() to api.paypal.com port 443 (#0)
*   Trying 66.211.168.123... * connected
* Connected to api.paypal.com (66.211.168.123) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection #0

Cuando intenté conectarme a api.paypal.com usando curl obtengo un error como este

curl -iv https://api.paypal.com/
* About to connect() to api.paypal.com port 443 (#0)
*   Trying 66.211.168.91... connected
* Connected to api.paypal.com (66.211.168.91) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS alert, Server hello (2):
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection #0
curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
ArunS
fuente

Respuestas:

3

openssl s_clientexplica mejor lo que está sucediendo aquí, ya que da si está recibiendo o enviando estos mensajes. api.paypal.com está solicitando un certificado de cliente específico (esta es la curva de * SSLv3, TLS handshake, Request CERT (13)línea que se está imprimiendo) y está enviando el certificado incorrecto (o no), por lo que su conexión falla:

SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server certificate request A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client certificate A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL3 alert read:fatal:handshake failure
SSL_connect:failed in SSLv3 read finished A
6016:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1086:SSL alert number 40
6016:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:

Al buscar en Google información de la API de PayPal, parece que tendrá que solicitar un certificado de cliente para la API . También tienen una opción de "firma" de nombre de usuario / contraseña, pero esta opción utiliza un servidor completamente diferente . Si tiene estos, entonces configurar el software de su carrito para usarlos es un problema que debe abordar el desarrollador del carrito. Si usted es el desarrollador y tiene un certificado, consulte los indicadores --cert, --cert-type, --key y --key-type curlpara configurar los usos de certificado y clave privada.

DerfK
fuente
Gracias por la respuesta. El problema ha sido resuelto ahora. El problema fue que uno de nuestros desarrolladores configuró incorrectamente el punto final de API de Paypal como api.paypal.com. Debe ser api-3t.paypal.com para funcionar correctamente.
ArunS
1
Tenga en cuenta que estas respuestas son obsoletas. SSLv3 no es compatible debido a la vulnerabilidad POODLE. Usarlo podría generar un error como este. Ver esta respuesta de StackOverflow
tomwhipple
-1

Me encuentro con esta misma pregunta.

Porque no puedo abrir el puerto 443 en Centos.

¡Así que revisa el puerto 443!

sudo losf -i tcp: 443

Método de resolución:

cd /etc/httpd/conf.d vim ssl.conf

en la primera línea agregue dos líneas:

LoadModule ssl_module modules/mod_ssl.so
Listen 443

¡Puedes probarlo!

Amor
fuente