メニュー
Elastic Load Balancing
クラシックロードバランサー

Classic Load Balancer の HTTPS リスナーの設定

リスナーとは接続リクエストをチェックするプロセスです。リスナーは、フロントエンド (クライアントからロードバランサー) 接続用のプロトコルとポート、およびバックエンド (ロードバランサーからインスタンス) 接続用のプロトコルとポートを使用して設定します。Elastic Load Balancing でサポートされるポート、プロトコル、およびリスナー設定については、「Classic Load Balancer のリスナー」を参照してください。

ポート 80 で HTTP リクエストを受け付けるリスナーを持つロードバランサーがある場合は、ポート 443 で HTTPS リクエストを受け付けるリスナーを追加できます。HTTPS リスナーがポート 80 でインスタンスに SSL リクエストを送信する方法を指定すると、ロードバランサーはリクエストを終了し、ロードバランサーからインスタンスへの通信は暗号化されません。HTTPS リスナーがポート 443 でインスタンスにリクエストを送信する場合は、ロードバランサーからインスタンスへの通信は暗号化されます。

ロードバランサーがインスタンスとの通信に暗号化された接続を使用する場合、オプションでインスタンスでの認証を有効にできます。これにより、パブリックキーとロードバランサーにこのために指定したキーが一致した場合に限り、ロードバランサーがインスタンスと通信できます。

新しい HTTPS リスナーの作成については、「HTTPS リスナーを使用した Classic Load Balancer の作成」を参照してください。

前提条件

HTTPS リスナーの HTTPS サポートを有効にするには、ロードバランサーに SSL サーバー証明書をデプロイする必要があります。インスタンスにリクエストを送信する前に、ロードバランサーは証明書を使用してリクエストを終了し、次にリクエストを復号します。SSL 証明書がない場合は作成します。詳細については、「Classic Load Balancer の SSL/TLS 証明書」を参照してください。

コンソールを使用した HTTPS リスナーの追加

既存のロードバランサーに、HTTPS リスナーを追加できます。

ロードバランサーに HTTPS リスナーを追加するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。

  3. ロードバランサーを選択します。

  4. [Listeners] タブで、[Edit] を選択します。

  5. [Edit listeners] ページで、[Add] を選択します。

  6. [Load Balancer Protocol] で、[ HTTPS (Secure HTTP)] を選択します。これにより、[Load Balancer Port]、[Instance Protocol]、および [Instance Port] が更新されます。

    重要

    デフォルトでは、インスタンスプロトコルは HTTP です。バックエンドインスタンス認証を設定するには、インスタンスプロトコルを HTTPS (Secure HTTP) に変更します。これにより、インスタンスポートが更新されます。

  7. [Cipher] で、[Change] を選択します。[Predefined Security Policy] が選択されており、[ELBSecurityPolicy-2016-08] に設定されていることを確認します。常に最新の事前定義されたセキュリティポリシーを使用することをお勧めします。別の事前定義されたセキュリティポリシーを使用する場合や、カスタムポリシーを作成する場合は、「SSL ネゴシエーション設定の更新」を参照してください。

  8. 証明書をロードバランサーに既にデプロイしており、これを使用し続ける場合は、このステップを省略できます。

    [SSL Certificate] 列で [Change] を選択し、次のいずれかの操作を行います。

    • AWS Certificate Manager の証明書を持っている場合は、[Choose an existing certificate from AWS Certificate Manager (ACM)] を選択し、[Certificate] から証明書を選択して、[Save] を選択します。

      注記

      このオプションは、AWS Certificate Manager がサポートされているリージョンでのみ使用できます。

    • IAM を使用して証明書をすでにアップロードしている場合は、[Choose an existing certificate from AWS Identity and Access Management (IAM)] を選択し、[Certificate ] から証明書を選択して、[Save] を選択します。

    • SSL 証明書をアップロードする準備ができると、[Upload a new SSL Certificate to AWS Identity and Access Management (IAM)] を選択します。証明書の名前を入力します。[Private Key] に、PEM エンコードされたプライベートキーファイルの内容をコピーして貼り付けます。[Public Key Certificate] に、PEM エンコードされたパブリックキー証明書ファイルの内容をコピーして貼り付けます。自己署名証明書を使用しておらず、ブラウザが暗黙的に証明書を受け入れることが重要である場合に限り、[Certificate Chain] に、PEM エンコードされた証明書チェーンファイルの内容をコピーして貼り付けます。

  9. (オプション) [Add] を選択してその他のリスナーを追加します。

  10. [Save] を選択して、先ほど設定したリスナーを追加します。

  11. (オプション) 既存のロードバランサーにバックエンドインスタンス認証をセットアップするには、AWS CLI または API を使用する必要があります。このタスクはコンソールを使用した場合はサポートされていません。詳細については、「バックエンドインスタンス認証の設定」を参照してください。

AWS CLI 使用した HTTPS リスナーの追加

既存のロードバランサーに、HTTPS リスナーを追加できます。

AWS CLI を使用してロードバランサーに HTTPS リスナーを追加するには

  1. SSL 証明書の Amazon リソースネーム (ARN) を取得します。(例:

    ACM

    arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

    IAM

    arn:aws:iam::123456789012:server-certificate/my-server-certificate
  2. ポート 443 で HTTPS リクエストを受け付け、HTTP を使用してポート 80 でインスタンスにリクエストを送信するロードバランサーにリスナーを追加するには、次の create-load-balancer-listeners コマンドを使用します。

    Copy
    aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN

    バックエンドインスタンス認証をセットアップするには、次のコマンドを使用して、ポート 443 で HTTPS リクエストを受け付け、HTTPS を使用してポート 443 でインスタンスにリクエストを送信するリスナーを追加します。

    Copy
    aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTPS,InstancePort=443,SSLCertificateId=ARN
  3. (オプション) 次の describe-load-balancers コマンドを使用して、ロードバランサーの更新後の詳細を表示できます。

    Copy
    aws elb describe-load-balancers --load-balancer-name my-load-balancer

    以下に、応答の例を示します。

    {
        "LoadBalancerDescriptions": [
            {
                ...
                "ListenerDescriptions": [
                    {
                        "Listener": {
                            "InstancePort": 80, 
                            "SSLCertificateId": "ARN", 
                            "LoadBalancerPort": 443, 
                            "Protocol": "HTTPS", 
                            "InstanceProtocol": "HTTP"
                        }, 
                        "PolicyNames": [
                            "ELBSecurityPolicy-2016-08"
                        ]
                    }, 
                    {
                        "Listener": {
                            "InstancePort": 80, 
                            "LoadBalancerPort": 80, 
                            "Protocol": "HTTP", 
                            "InstanceProtocol": "HTTP"
                        }, 
                        "PolicyNames": []
                    }
                ], 
                ...
            }
        ]
    }
  4. (オプション) HTTPS リスナーは、デフォルトのセキュリティポリシーを使用して作成されています。別の事前定義されたセキュリティポリシーやカスタムのセキュリティポリシーを指定する場合は、create-load-balancer-policy コマンドおよび set-load-balancer-policies-of-listener コマンドを使用します。詳細については、「AWS CLI を使用した SSL ネゴシエーション設定の更新」を参照してください。

  5. (オプション) バックエンドインスタンス認証をセットアップするには、set-load-balancer-policies-for-backend-server コマンドを使用します。詳細については、「バックエンドインスタンス認証の設定」を参照してください。