Forçar a minha aplicação heroku a usar SSL (https)
no entanto, o http não-SSL padrão ainda está disponível também. Como posso forçar a aplicação a servir sobre https? Obrigado.
6 answers
Tens de adicionar ao nó.js app the code to redirect the request to the HTTPS version if the request comes from HTTP.
Dependendo da estrutura ou das ferramentas que usa, a ideia é simples:
- verifique o sistema de Pedidos
- Se http, redireccione para https passando ao longo da mesma requisição uri e consulta
Se você está desenvolvendo um creat-react-app
E aconteceu de usar create-react-app-buildpack
para se deslocar para Heroku (eu sou preguiçoso...)
Pode especificar o seguinte no seu ficheiro static.json
{
"https_only": true
}
Https://github.com/mars/create-react-app-buildpack#user-content-https-only
Também pode redireccionar os pedidos HTTP para HTTPS na camada de infra-estrutura, não necessitando de alterações na sua aplicação.
A Opção Edge CDN addon oferece uma opção" redireccionar HTTP para HTTPS".
Coloca o AWS CloudFront CDN à frente da sua aplicação, que lida com o redireccionamento. O router de Heroku não tem esta característica.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();
}
});
Uma vez movi o expresso.estática ('build') por baixo da aplicação send.use o método tudo funcionou!