web-dev-qa-db-ja.com

AWS API Gatewayのhttp://リクエストをhttps://にリダイレクト(カスタムドメインを使用)

カスタムドメインのAWS API Gateway を使用しています。 https://www.mydomain.comにアクセスしようとすると完全に機能しますが、httpにアクセスすると://www.mydomain.com接続できません。

API Gatewayのカスタムドメインでhttp -> httpsをリダイレクトする方法はありますか?そうでない場合、http://リンクをhttps://リンクと同じように機能させる方法はありますか?

22
supersan

API Gatewayは、おそらくセキュリティ機能として、またいくつかの実用的な考慮事項として、TLSなしでhttpを直接サポートしていません。

POSTリクエストのHTTPからHTTPSへのリダイレクトは実際には少し無意味です-データはすでに安全に送信されているので、APIに対してこれを行うには特に良い方法はありません。リダイレクトが生成されるまでに、本文が送信される前にクライアントがExpect: 100-continue

CloudFrontディストリビューションを作成し、GETおよびHEADリクエストをHTTPからHTTPSにリダイレクトするように構成できますが、POSTリクエストをそのようなディストリビューションに送信すると、 CloudFrontはリダイレクトしません前述のように)そのようなリダイレクトは役立つよりも有害であるため、エラーをスローするだけです。

ただし... GETがアプリケーションの場合、それは非常に簡単です。最初に、システムに割り当てられたホスト名を持つリージョナル(---(Edge-Optimizedではない)APIエンドポイントを使用してAPIをデプロイします。カスタムドメインではありません。

次に、このリージョナルAPIエンドポイントをオリジンサーバーとして使用するCloudFrontディストリビューションを作成し、HTTPをHTTPSにリダイレクトするようにCloudFrontディストリビューションの動作を構成します。 API Gatewayに直接ではなく、カスタムドメイン名をCloudFrontディストリビューションに関連付けます。

11