カスタムドメインのAWS API Gateway を使用しています。 https://www.mydomain.comにアクセスしようとすると完全に機能しますが、httpにアクセスすると://www.mydomain.com接続できません。
API Gatewayのカスタムドメインでhttp -> https
をリダイレクトする方法はありますか?そうでない場合、http://リンクをhttps://リンクと同じように機能させる方法はありますか?
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ディストリビューションに関連付けます。