Elastic Beanstalk 環境の HTTPS の設定 - AWS Elastic Beanstalk

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Elastic Beanstalk 環境の HTTPS の設定

Elastic Beanstalk 環境用にカスタムドメイン名を購入して設定した場合は、HTTPS を使用することで、ユーザーがウェブサイトに接続する際の安全性を確保できます。ドメイン名を所有していない場合でも、開発およびテスト目的に自己署名証明書で、HTTPS を使用できます。HTTPS は、ユーザーデータやログイン情報を送信するいずれのアプリケーションにも必須です。

Elastic Beanstalk 環境で HTTPS を使用する最も簡単な方法は、環境のロードバランサーにサーバー証明書を割り当てることです。HTTPS を終了するようにロードバランサーを設定すると、クライアントとロードバランサーとの間の接続はセキュアになります。ロードバランサーと EC2 インスタンスとの間のバックエンド接続では HTTP が使用されるため、インスタンスの追加の設定は必要ありません。

注記

AWS Certificate Manager (ACM) を使用すると、信頼された証明書をドメイン名用に無料で作成できます。ACM 証明書は AWS ロードバランサーと Amazon CloudFront ディストリビューションでのみ使用でき、ACM は特定のリージョンでのみ使用できます

Elastic Beanstalk で ACM 証明書を使用するには、「HTTPS を終了するよう Elastic Beanstalk 環境のロードバランサーを設定する」を参照してください。

単一インスタンスの環境でアプリケーションを実行したり、ロードバランサーの背後で EC2 インスタンスまで接続をセキュリティで保護する必要がある場合は、HTTPS を終了するように、インスタンス上で実行されるプロキシサーバーを設定できます。HTTPS 接続を終了するようにインスタンスを設定するには、設定ファイルを使用して、インスタンスで実行されるソフトウェアを変更し、セキュアな接続を許可するようにセキュリティグループを変更する必要があります。

負荷分散された環境でのエンドツーエンドの HTTPS の場合、インスタンスとロードバランサーの終了を組み合わせて、両方の接続を暗号化できます。デフォルトでは、HTTPS を使用するトラフィックを転送するようにロードバランサーを設定した場合、ロードバランサーはバックエンドインスタンスによって提示された証明書をすべて信頼します。セキュリティを最大限に高めるには、インスタンスによって提示された公開証明書をロードバランサーが信頼しない場合にそのインスタンスへの接続を禁止するポリシーを、ロードバランサーにアタッチできます。

注記

また、HTTPS トラフィックを復号せずに中継するように、ロードバランサーを設定することもできます。この方法の欠点は、ロードバランサーがリクエストを見ることができないため、ルーティングを最適化したり、応答メトリクスをレポートしたりできないことです。

ACM がお客様のリージョンで使用できない場合は、信頼された証明書を第三者から購入できます。第三者からの証明書はロードバランサー、バックエンドインスタンス、またはその両方で HTTPS トラフィックの復号に使用できます。

開発およびテスト目的で、オープンソースのツールを使用して自分で証明書を作成して署名できます。自己署名証明書は無料で簡単に作成できますが、公開サイトのフロントエンド復号化に使用することはできません。クライアントへの HTTPS 接続に自己署名証明書を使用しようとした場合、ユーザーのブラウザではウェブサイトが安全でないことを示すエラーメッセージが表示されます。ただし、バックエンド接続の保護に自己署名証明書を使用することは問題ありません。

ACM は、プログラムまたは AWS CLI を使用してサーバー証明書をプロビジョン、管理、デプロイするための推奨ツールです。ACM を使用できない AWS リージョンについては、AWS CLI を使用して、サードパーティーの証明書または自己署名証明書とプライベートキーを AWS Identity and Access Management (IAM) にアップロードできます。IAM に保存されている証明書は、ロードバランサーと CloudFront ディストリビューションで使用できます。

注記

GitHub のDoes it have Snakes? サンプルアプリケーションには、Tomcat ウェブアプリケーションで HTTPS を設定する方法別に設定ファイルと手順が含まれています。詳細については、readme ファイルHTTPS に関する手順を参照してください。