not - Forzar la aplicación de mi heroku para usar SSL(https)
heroku letsencrypt (6)
Debe agregar a la aplicación Node.js el código para redirigir la solicitud a la versión HTTPS si la solicitud proviene de HTTP.
Dependiendo del marco o las herramientas que use, la idea es simple:
- verifique el esquema de solicitud
- Si es http, redirigir a https pasando la misma solicitud uri y consulta
Tengo una aplicación de nodo que se ejecuta con éxito en Heroku. He comprado un certificado SSL expedito y todo funciona bien. Voy a https ... y obtengo una ''barra verde'' completa que demuestra que el sitio se ofrece a través de https
Sin embargo, el http estándar que no es SSL también está disponible. ¿Cómo puedo forzar la aplicación para que sirva a través de https? Gracias
En Heroku, es un poco difícil determinar el hecho de que la solicitud se realizó a través de http. https se maneja en una capa de enrutamiento de heroku y pasa a lo largo de la solicitud a la aplicación de nodo en http).
Esta publicación me dejó despegado http://jaketrent.com/post/https-redirect-node-heroku/
Para cualquiera que venga a este post, estaba teniendo este problema y descubrí que tenía el código en este orden, que estaba arruinando las cosas:
app.use(express.static(''build''));
app.use((req, res, next) => {
if (req.header(''x-forwarded-proto'') !== ''https'') {
res.redirect(`https://${req.header(''host'')}${req.url}`)
} else {
next();
}
});
Una vez moví el método express.static (''compilación'') a continuación que envía el método app.use ¡todo funcionó!
Si estás desarrollando una aplicación creat-react-app
y pasas a usar create-react-app-buildpack
para desplegar en Heroku (soy perezoso ...)
Puede especificar lo siguiente en su archivo static.json
{
"https_only": true
}
https://github.com/mars/create-react-app-buildpack#user-content-https-only
También hay un módulo NPM heroku-ssl-redirect te ayuda a lidiar con eso
También puede redirigir las solicitudes HTTP a HTTPS en la capa de infraestructura, sin requerir cambios en su aplicación.
El complemento Edge CDN ofrece una opción de "redireccionamiento de HTTP a HTTPS".
Coloca el CDS de AWS CloudFront frente a su aplicación, que se encarga de la redirección.
El enrutador Heroku no tiene esta característica.