Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

167
Vistas
validación mTLS y ngrok

Estoy desarrollando la integración de un método de pago a Shopify que me pide que valide sus solicitudes (como cliente) usando mTLS.

Las aplicaciones de pago deben implementar mTLS para manejar todas* las solicitudes en las que actúan como servidor y Shopify como cliente. Este es el caso cuando Shopify inicia sesiones con aplicaciones de pago. En esos casos, Shopify usa su propio certificado de cliente. Las aplicaciones de pago deben usar la CA autofirmada que se proporciona a continuación para validar ese certificado. El uso de mTLS en estos escenarios permite que las aplicaciones de pagos verifiquen que el cliente que inicia la solicitud es Shopify y que el tráfico entre Shopify y la aplicación de pagos es confiable y seguro.

Usé túneles ngrok en muchas otras integraciones con Shopify, pero dado que no eran una aplicación de pago, Shopify no requería mTLS, por lo que no tuve problemas para usar los túneles.

Ahora que realizo la validación del certificado del cliente en el servidor:

 https .createServer( { requestCert: true, rejectUnauthorized: true, ca: fs.readFileSync(path.join(__dirname, 'security', 'ca.pem')), }, app ) .listen(APP_PORT, () => console.log(`Server listening at: ${APP_URL}`));

Donde 'ca' apunta al certificado que Shopify me da en la documentación:

Cuando intento acceder a mi URL de ngrok, aparece este mensaje:

error de puerta de enlace ngrok

El servidor devolvió una respuesta HTTP no válida o incompleta.

ERR_NGROK_3004

Al buscar en la documentación de ngrok, descubrí que es posible usar túneles TLS.

La primera pregunta es : si uso un túnel TLS, ¿ya no obtendré ese error?

Por otro lado, Shopify también exige que:

La aplicación de pagos también debe proporcionar un certificado que Shopify validará. Para este certificado, debe usar un certificado SSL firmado por una CA de confianza y no una CA autofirmada de Shopify.

La segunda pregunta es : cuando coloco la aplicación en un servidor con una URL certificada HTTPS, entiendo que cumpliré con este requisito. Pero me gustaría saber si mientras estoy desarrollando la aplicación localmente, está bien usar un certificado generado, por ejemplo, con openSSL

La razón por la que pido su ayuda y no intento usar un túnel mTLS es que necesita una cuenta paga de ngrok para acceder a ese tipo de túnel, que no tengo.

Muchísimas gracias.


Estoy usando Node + Express para el servidor.

Documentación de Shopify: https://shopify.dev/apps/payments/general-transaction-requirements

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Terminé enviando el siguiente correo electrónico al soporte de ngrok:

Hola mi nombre es Juan y quisiera saber si me pueden ayudar con lo siguiente:

Estoy desarrollando la integración de un Método de Pago a Shopify el cual me pide validar sus solicitudes usando mTLS.

Usé túneles ngrok en muchas otras integraciones con Shopify, pero no requería esta validación en particular y no tuve problemas con ellos.

Ahora que realizo la validación del certificado del cliente en el servidor, cuando intento acceder a mi url ngrok recibo este mensaje: error de puerta de enlace ngrok El servidor devolvió una respuesta HTTP inválida o incompleta.

ERR_NGROK_3004

Al buscar en la documentación de ngrok, descubrí que es posible usar túneles TLS especiales.

La pregunta es: si uso un túnel TLS, ¿ya no obtendré ese error? Le escribo porque si resuelve el problema, le pediré a mi empresa que actualice mi plan para poder tener acceso al túnel TLS. Pero quería estar seguro de que solucionará el problema antes de preguntar.

Muchas gracias.

Y te contestan con el siguiente email:

Hola, Juan,

Admitimos mTLS en nuestro perímetro para túneles HTTP. Crearía una configuración de punto final del tipo TLS mutuo y la adjuntaría a su dominio.

https://dashboard.ngrok.com/endpoints/configs

También admitimos mTLS en el agente o en su servidor para nuestros túneles TLS como dice, pero esto puede ser más complicado de configurar.

Si no funciona, tenemos una garantía de devolución de dinero de 15 días.

ben

Como no me era posible pagar la cuenta y acceder a estas funciones, terminé desarrollando la aplicación en un servidor de etapa, donde no tuve problemas. ¡Espero que esto te ayude! :)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda