Redsys, WooCommerce, CloudFlare: pedidos pendientes de pago (certificado SSL auto-emitido)

Importante: no te encontrarás con este problema si utilizas un certificado de LetsEncrypt por ejemplo.

Esto me ha sucedido cuando he intentado usar un certificado auto-emitido por cPanel. En mi caso cPanel free SSL Comodo.

1. Requerimientos de Redsys

Necesitas un certificado SSL emitido por alguna entidad aprobada por Redsys. Puedes contactar con ellos y solicitarles el archivo PDF:

«REQUERIMIENTOS DE LOS CERTIFICADOS DE SERVIDOR DE TERCEROS EMPLEADOS EN LAS CONEXIONES SEGURAS CON REDSYS» Referencia RS.RI.SEG.MAN.0004


Recuerda previamente verificar que el certificado que tengas instalado este entre los aprobados por Redsys.

Puedes realizar en este punto una compra y verificar si la notificación de Redsys te llega. Si configuraste entre las opciones de Woocommerce -> Redsys, que una vez realizado el pago el estado del pedido sea actualizado a «Procesando», entonces verás que el pedido ha cambiado su estado. Esto significa que las notificaciones de Redsys te han llegado. Puedes también verificarlo desde el propio panel de Redsys, tienes una opción de «Notificaciones» y ver el estado de la notificación (esto servirá para detectar en el caso de un error, que puede estar sucediendo)

2. Si utilizas un certificado auto-emitido

En mi caso he utilizado un certificado auto-emitido cPanel free SSL Comodo y me he encontrado con dos errores:

Error 1 – «Received fatal alert: handshake_failure»

https://dominio.com/?wc-api=WC_redsys
 Received fatal alert: handshake_failure

El primer error recibido, fue porque tenía un certificado SSL emitido por cPanel instalado en el servidor, pero activado CloudFlare. Lo que sucede es que cuando tenemos activado CloudFlare, este utiliza un certificado SSL compartido, por lo que Redsys no valida. Al desactivar CloudFlare me di cuenta de que este error no sucedía y las notificaciones de los pagos llegaban sin problema. Si queremos activar CloudFlare debemos comprar un certificado dedicado desde dentro de CloudFlare para nuestro dominio. Una vez dentro del dominio en CloudFlare, vamos a la opción «Crypto» y activamos en SSL la opción FULL (strict) esto hará que CloudFlare se comunique con nuestro servidor y en cada request valide con el certificado (recuerda que antes debes tener en tu servidor un certificado válido.

Lo que haremos en el siguiente paso es solicitar un certificado SSL dedicado en esa misma pantalla, en mi caso «Edge Certificates» y click al botón «Order SSL Certificate». Con el de 5 dólares mensual estaremos bien.

Una vez tenemos ambos certificados, uno a nivel de servidor (válido por Redsys) y otro a nivel de CloudFlare (también válido por Redsys) tenemos el problema resuelto.

Error 2 – «Server returned HTTP response code: 403 for URL: https://dominio.com/?wc-api=WC_redsys»

https://dominio.com/?wc-api=WC_redsys
 Server returned HTTP response code: 403 for URL: https://dominio.com/?wc-api=WC_redsys

Este segundo error sucedió porque CloudFlare estaba activado en este dominio y el firewall estaba bloqueando las notificaciones. Para solucionarlo puedes ingresar a la página de CloudFlare y seleccionar el dominio en cuestión. Luego en Firewall agregas los IP’s de las notificaciones de Redsys, en mi caso, los he consultado y son: 195.76.9.222195.76.9.187195.76.9.182193.16.243.33

Problema solucionado 😉


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Nombre *