Solución:
En Heroku, es un poco complicado determinar el hecho de que la solicitud llegó a través de http. https se maneja en una capa de enrutamiento heroku y pasa la solicitud a la aplicación de nodo en http).
Esta publicación me hizo despegar http://jaketrent.com/post/https-redirect-node-heroku/
También hay un módulo de NPM heroku-ssl-redirect que lo ayuda a lidiar con él.
Solo uso la función “Usar siempre HTTPS” de Cloudflare para eso. Solo sigue estos pasos:
1. Regístrese en Cloudflare si aún no lo ha hecho
2. Agrega tu sitio example.com
3. Seleccione un plan. (El plan gratuito es suficiente para eso)
4. Revise sus registros DNS. Cloudflare intenta detectar automáticamente los registros si ya tiene algunas entradas en Namecheap, por ejemplo. Lo importante es que deje al menos el registro Tipo A con el IPv4
dirección y también la CNAME
Escriba donde el Content
es el DNS Target
del nombre de dominio en la configuración de Heroku de su aplicación. Ver también la captura de pantalla
5. Debe señalar los servidores de nombres de Cloudflare para activar su sitio con éxito, de lo contrario Cloudflare no podrá administrar su DNS y optimizar su sitio. Elimine los servidores de nombres existentes y luego reemplácelos con los servidores de nombres de Cloudflare. También le mostrarán las instrucciones en una página (podría tomar hasta 48 horas hasta que su sitio esté activo, pero en mi experiencia, solo tomó 15 minutos). Vea la captura de pantalla con Namecheap como ejemplo:
6. Ve a la SSL/TLS
Sección y debajo de la sección Edge Certificates
habilite la función “Usar siempre HTTPS”. Ahora todas las solicitudes con el esquema “http” deben redirigirse a “https”
Bono 1: Para reenviar también solicitudes sin el esquema o www, por ejemplo, si el usuario ingresa solo example.com
o www.example.com
simplemente cree una regla de página para reenviar estas solicitudes a su URL segura. Para eso, vaya a la sección “Reglas de página” y presione el botón “Crear regla de página”. Ingrese la URL que debe coincidir y agregue la Configuración Forwarding URL
con el código de estado 301 - Permanent Redirect
. Ingrese también la URL de destino de la siguiente manera con $1
al final para que funcione correctamente. Haga clic en “Guardar e implementar” y estará listo para comenzar. Para obtener más detalles, consulte la sección “Opciones de reenvío avanzadas” aquí (tenga en cuenta que es posible que deba borrar su caché para ver los cambios). Ver la captura de pantalla:
Bono 2: Compraste otro dominio y solo quieres redirigirlo a tu dominio principal seguro. Por ejemplo, compraste fiveexample.com
y 5example.com
y quieres redirigir 5example.com
siempre a https://www.fiveexample.com
no importa lo que ingrese el usuario con respecto a 5example.com
p.ej www.5example.com
, http://5example.com
e incluso https://www.5example.com
incluso si su segundo dominio no tiene SSL. Las reglas de la página de Cloudflares también son aquí una solución. Simplemente siga los pasos 1-5 (pero en el paso 4 no necesita el objetivo heroku dns) para su segundo dominio. Después de seguir los pasos para admitir todos los reenvíos, agregue estas tres reglas de página para su segundo dominio. Funciona también perfectamente para .app
dominios (tenga en cuenta que es posible que deba borrar su caché para ver los cambios). Ver captura de pantalla