Перенаправление HTTP на HTTPS в App Engine
я последовал ответу этого:перенаправление с http на https в Google cloud но, похоже, в настоящее время он не является точным. Якорь ссылается ( https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#security) кажется, были удалены, но без примечания о замене.
для справки, я обслуживаю NodeJS над движком Google App (flex). Согласно ответу, который я получил в моем app.yaml
:
handlers:
- url: /.*
script: IGNORED
secure: always
поскольку HTTPS, очевидно, завершается до того, как он попадает в мой экспресс-движок (и перенаправление там было бы бесполезно); как это в настоящее время правильно реализовано?
потенциально полезно, у меня есть внешний домен, подключенный через вкладку "пользовательские домены" в консоли, и действительно настроен сертификат SSL (поэтому, если пользователь вручную https://.com все в порядке)
2 ответов
гибкая среда не поддерживает текущие обработчики в приложении.и YAML. Если вы хотите https:// перенаправление, у вас есть несколько вариантов:
- использовать шлем сделать для HSTS материал для вас и реализовать свой собственный первоначальный перенаправление.
- Я написал счастливую маленькую библиотеку, чтобы всегда заставлять SSL на всех маршрутах для express да-https протоколу
мы рассматриваем автоматическое перенаправление все трафик на SSL по по умолчанию. Как вы думаете, это было бы хорошо для ваших приложений?
потянув библиотеку да-https Джастина, я смог заставить это работать:
var app = express();
app.use(function(req, res, next){
if (req.host != 'localhost' && req.get('X-Forwarded-Proto') == 'http') {
res.redirect(`https://${req.host}${req.url}`);
return;
}
app.router(req, res, next);
});
сначала я думал, что должен это сделать, так как я был на поддомене appengine и не мог использовать HSTS. Затем я узнал, что HSTS отлично работает для поддоменов. :) Несмотря на это, я думал, что люди могут захотеть увидеть, что волшебный бит использовать, если они не хотят использовать yes-https по какой-то причине.
Джастин, автоматическое перенаправление всего трафика на SSL по умолчанию звучит отлично для меня. Я просто часами пытаясь выяснить, как это сделать, прежде чем я нашел этот пост, потому что я пытался получить мое приложение, чтобы получить Chrome добавить на рабочий стол установить баннер в соответствии с https://developers.google.com/web/fundamentals/engage-and-retain/app-install-banners/.