私はこれの答えに従いました: グーグルクラウドでhttpからhttpsにリダイレクトします しかしそれは現在もはや正確ではないようです。参照されているアンカー( https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#security )は削除されたようですが、交換のメモ。
参考までに、私はGoogleアプリ(フレックス)エンジンを介してNodeJSを提供しています。答えによると、私はapp.yaml
:
handlers:
- url: /.*
script: IGNORED
secure: always
HTTPSは明らかに私のExpressエンジンに到達する前に終了するので(そしてそこでのリダイレクトは役に立たないでしょう)。現在どのように正しく実装されていますか?
役立つ可能性があります。コンソールの[カスタムドメイン]タブから外部ドメインを接続していて、SSL証明書が構成されています(ユーザーが手動でhttps://.comにアクセスした場合は、すべて問題ありません)。
Justinのyes-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に自動リダイレクトすることは、私には素晴らしいことだと思います。 https://developers.google.com/web/Fundamentals/Engage-and-retain/app-install-banners / 。