Перенаправление HTTP на HTTPS в App Engine

Я выполнил ответ на этот вопрос: переадресовать с http на https в облаке Google, но он, похоже, в настоящее время не точнее. Ссылка на якорь ( https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#security ), похоже, была удалена, но без примечания о замене.

Для справки, я обслуживаю NodeJS через Google App (flex) Engine. В соответствии с ответом, который я получил в своем приложении. app.yaml :

 handlers: - url: /.* script: IGNORED secure: always 

Поскольку HTTPS, очевидно, прекращается до того, как он ударит по моему движку Express (и redirect на него будет бесполезным); как он в настоящее время правильно реализован?

Потенциально полезный, у меня есть внешний домен, подключенный через вкладку «Пользовательские домены» на консоли, и действительно есть настроенный SSL-сертификат (так что если пользователь вручную переходит на https: //.com, все в порядке)

Гибкая среда не поддерживает текущие обработчики поддержки в app.yaml. Если вы хотите перенаправить https: //, у вас есть несколько вариантов:

  • Используйте шлем, чтобы сделать для вас материал HSTS, и реализуйте свою собственную первоначальную переадресацию.
  • Я написал счастливую маленькую библиотеку, которая всегда заставляет SSL на всех маршрутах для express- да-https

Мы рассматриваем автоматическое redirect всего трафика на 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.

Justin, автоматически перенаправляющий весь трафик на SSL по умолчанию, отлично подходит для меня. Я просто потратил часы, пытаясь понять, как это сделать, прежде чем я нашел этот пост, потому что пытался получить приложение, чтобы добавить Chrome на рабочий стол для установки на рабочем столе в соответствии с https://developers.google.com/web/fundamentals/engage -and-keep / app-install-banners / .

  • Автоматическое соединение HTTPS / redirect с node.js / express
  • node.js эквивалент python, если __name__ == '__main__'
  • npm install vs. update - какая разница?
  • Как удалить модули npm в узле js?
  • Как сделать удаленный вызов REST внутри Node.js? любой CURL?
  • Выберите правильный метод async для пакетной обработки для максимальных запросов / сек.
  • Загрузите модуль node.js из строки в памяти
  • личное сообщение socket.io
  • socket.io комнаты или namespacing?
  • Как перенаправить URL браузера пользователя на другую страницу в Nodejs?
  • Облачные функции для Firebase - учетная запись не настроена
  • Давайте будем гением компьютера.