Перенаправление 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 / .

  • Почему node.js не может работать на общем хостинге?
  • Как реализовать безопасный REST API с node.js
  • Что конкретно представляет собой цикл событий Node.js?
  • Использовать переменную в Jade include
  • Как получить параметр URL в Express?
  • В чем разница между __dirname и ./ в node.js?
  • В чем разница между зависимостями, devDependencies и peerDependencies в файле npm package.json?
  • Автоматический запуск узла.js-сервера при загрузке
  • Команды npm не работают на WSL с zsh
  • Как разместить несколько узлов Node.js на одном и том же IP-сервере с разными доменами?
  • Не удалось установить пакет npm "npm ERR! errno -4048 "
  • Давайте будем гением компьютера.