Elastic Beanstalk 環境で実行されるアプリケーションに SSL 証明書を設定するにはどうすればよいですか?

所要時間2分
0

AWS Elastic Beanstalk で実行されるアプリケーションに SSL 証明書を設定したいと考えています。

簡単な説明

Elastic Beanstalk で実行されるアプリケーションに SSL 暗号化を有効にするには、次のいずれかのアクションを実行します。

  • ロードバランサーレベルで HTTPS を終了する
  • インスタンスレベルで HTTPS を終了する
  • HTTP を HTTPS にリダイレクトする

解決策

ロードバランサーレベルで HTTPS を終了する

HTTPS を使用して Elastic Beanstalk 環境を更新するには、環境のロードバランサーに対して HTTPS リスナーを設定する必要があります。HTTPS リスナーをサポートするロードバランサーには次の 2 種類があります。

  • Classic Load Balancer
  • Application Load Balancer

詳細については、「 HTTPS を終了するように Elastic Beanstalk 環境のロードバランサーを設定する」を参照してください。

インスタンスレベルで HTTPS を終了する

単一インスタンス環境で HTTPS を使用するか、トラフィックを復号化せずにトラフィックを通過させるようにロードバランサーを設定するには、プラットフォームフックを使用できます。プラットフォームフックを使用して、アプリケーションにトラフィックを渡すプロキシサーバーを設定し、HTTPS 接続を終了します。フックファイルは Elastic Beanstalk プラットフォームのタイプによって異なります。詳細については、「 インスタンスで HTTPS 接続を終了するようにアプリケーションを設定する」を参照してください。

注: Amazon Linux AMI (AL1) プラットフォームは廃止されているため、プラットフォームフックを使用してプロキシサーバーに変更を加えるのがベストプラクティスです。以前 AL1 プラットフォームの .ebextensions/nginx ディレクトリで提供されていたプロキシ設定ファイルを、AL2 の platform/nginx プラットフォームフックディレクトリに移動します。Elastic Beanstalk のデフォルトの NGINX 設定を拡張するには、アプリケーションのソースバンドル内の .platform/nginx/conf.d/ という名前のフォルダーに .conf 設定ファイルを追加します。Elastic Beanstalk の NGINX 設定では、このフォルダーに .conf ファイルが自動的に含まれます。

~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`--

Elastic Beanstalk のデフォルトの NGINX 設定を上書きするには、.platform/nginx/nginx.confにあるソースバンドルに設定を含めます。

~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- nginx.conf
`--

Elastic Beanstalk の NGINX 設定を上書きする場合は、Elastic Beanstalk の設定を引き継ぎます。設定を引き継ぐことにより、ヘルスレポートとモニタリングを強化し、自動アプリケーションマッピング、静的ファイルを作成できます。設定を引き継ぐには、nginx.confに次の行を追加します。

include conf.d /elasticbeanstalk/ *.conf;

プロキシの設定方法の詳細については、「 リバースプロキシ設定」を参照してください。

注: プロキシエラーログに次のような警告が表示されることがあります。「 nginx: [ [警告] ] 『ssl』ディレクティブは非推奨です。『listen ... ssl』ディレクティブを使用してください」。この警告を回避するには、次の .conf ファイルを使用してプラットフォームフックフォルダに保存し、インスタンスレベルで SSL を終了します。

listen       443 ssl;
server_name  localhost;


location / {
              proxy_pass  http://localhost:app_port;
              proxy_set_header   Connection "";
              proxy_http_version 1.1;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Real-IP       $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }
      }

HTTP を HTTPS にリダイレクトする

HTTP から HTTPS へのリダイレクトは、クライアントが開始する非セキュアなトラフィックを処理し、トラフィックを HTTPS にリダイレクトします。リダイレクトに Application Load Balancer または単一のインスタンスを使用している場合は、「 HTTP から HTTPS へのリダイレクトの設定」を参照してください。

デフォルトでは、Classic Load Balancer は HTTP トラフィックを HTTPS にリダイレクトできません。代わりに、Classic Load Balancer の背後にあるウェブサーバーインスタンスの書き換えルールを設定します。詳細については、「 Classic Load Balancer で HTTP トラフィックを HTTPS にリダイレクトするにはどうすればよいですか?」を参照してください。


AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ