ECDSA 暗号を使用するように、Application Load Balancer TLS/SSL リスナーを設定するにはどうすればよいですか?

最終更新日: 2022 年 3 月 11 日

Application Load Balancer のセキュリティポリシーは、RSA および ECDSA 暗号をリストに表示します。しかし、ロードバランサーに接続すると、必ず RSA 暗号が選択されています。ロードバランサーが TLS 暗号化に ECDSA 暗号を使用するように設定するにはどうすればよいですか?

簡単な説明

Application Load Balancer HTTPS リスナーには複数の証明書を設定できますが、必要なセキュリティポリシーは 1 つだけです。各セキュリティポリシーには、RSA と ECDSA の両方の暗号化アルゴリズム向けの暗号が含まれています。TLS ハンドシェイク中、Application Load Balancer は選択プロセスロジックを使用して、HTTPS 接続に使用する Application Load Balancer 証明書を決定します。選択した証明書が RSA キーまたは ECDSA (楕円曲線) キーを使用して作成されている場合、Application Load Balancer は、暗号化のために、RSA または ECDSA 暗号を使用します。

注: AWS Certificate Manager (ACM) によって生成されるパブリック証明書は、RSA キーを使用します。したがって、任意の ACM 証明書を使用した Application Load Balancer での暗号化では、RSA 暗号が使用されることが想定されます。暗号化に ECDSA 暗号を利用するには、ECDSA 署名付き証明書を ACM にインポートし、HTTPS リスナーに関連付ける必要があります。

解決方法

Application Load Balancer で ECDSA 暗号を使用するには、次の手順を実行します。

新しい ECDSA 証明書を AWS Certificate Manager にインポートし、HTTPS リスナーにバインドする

CA (認証局) と連携してドメインの ECDSA 証明書を PEM 形式で取得したら、次の手順を実行します。

1.    新しい ECDSA 証明書を AWS Certificate Manager にインポートします

2.    新しくインポートした ECDSA 証明書を Application Load Balancer に関連付けます

(オプション) サポートされている暗号について、ロードバランサーの TLS リスナーをテストする

使用するプロトコルと暗号をテストするには、sslscan などのオープンソースのコマンドラインツールを使用します。

注: sslscan を使用すると、追加のサードパーティーユーティリティを使用しなくても、すべての暗号の完全な情報を取得できます。例えば、cURL を使用する場合、個々の暗号スイートを指定する必要があります。これには、TLS プロトコルと暗号スイートを指定する個別の cURL リクエストが必要です。

sslscan コマンドは、任意の Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスで、またはローカルシステムからインストールして実行できます。テストするロードバランサーが、送信元 IP アドレスからの TLS 接続を承諾することを確認してください。

Amazon Linux EC2 インスタンスで sslscan を使用するには、以下の手順を実行します。

1.    [Extra Packages for Enterprise Linux (EPEL) repository] (Enterprise Linux (EPEL) リポジトリ用追加パッケージ) を有効にします。

2.    次のコマンドを使用して、Amazon EC2 Linux インスタンスに sslscan をインストールします。

sudo yum install sslscan

3.    次のコマンド構文を使用して、サポートされている暗号について Application Load Balancer をスキャンし、「example.com」をドメイン名に置き換えます。

[ec2-user@ ~]$ sslscan --show-ciphers example.com | grep Accepted

P-256 ECDSA 証明書とデフォルトのセキュリティポリシーを使用して、Application Load Balancer で脆弱性スキャンを実行した結果を示す出力例を次に示します。

    Accepted  TLSv1  256 bits  ECDHE-ECDSA-AES256-SHA
    Accepted  TLSv1  128 bits  ECDHE-ECDSA-AES128-SHA
    Accepted  TLS11  256 bits  ECDHE-ECDSA-AES256-SHA
    Accepted  TLS11  128 bits  ECDHE-ECDSA-AES128-SHA
    Accepted  TLS12  256 bits  ECDHE-ECDSA-AES256-GCM-SHA384
    Accepted  TLS12  256 bits  ECDHE-ECDSA-AES256-SHA384
    Accepted  TLS12  256 bits  ECDHE-ECDSA-AES256-SHA
    Accepted  TLS12  128 bits  ECDHE-ECDSA-AES128-GCM-SHA256
    Accepted  TLS12  128 bits  ECDHE-ECDSA-AES128-SHA256
    Accepted  TLS12  128 bits  ECDHE-ECDSA-AES128-SHA

比較のために、RSA 2048 証明書とデフォルトのセキュリティポリシーを使用したロードバランサーの脆弱性スキャンの出力例を次に示します。

    Accepted  TLSv1  256 bits  ECDHE-RSA-AES256-SHA
    Accepted  TLSv1  256 bits  AES256-SHA
    Accepted  TLSv1  128 bits  ECDHE-RSA-AES128-SHA
    Accepted  TLSv1  128 bits  AES128-SHA
    Accepted  TLS11  256 bits  ECDHE-RSA-AES256-SHA
    Accepted  TLS11  256 bits  AES256-SHA
    Accepted  TLS11  128 bits  ECDHE-RSA-AES128-SHA
    Accepted  TLS11  128 bits  AES128-SHA
    Accepted  TLS12  256 bits  ECDHE-RSA-AES256-GCM-SHA384
    Accepted  TLS12  256 bits  ECDHE-RSA-AES256-SHA384
    Accepted  TLS12  256 bits  ECDHE-RSA-AES256-SHA
    Accepted  TLS12  256 bits  AES256-GCM-SHA384
    Accepted  TLS12  256 bits  AES256-SHA256
    Accepted  TLS12  256 bits  AES256-SHA
    Accepted  TLS12  128 bits  ECDHE-RSA-AES128-GCM-SHA256
    Accepted  TLS12  128 bits  ECDHE-RSA-AES128-SHA256
    Accepted  TLS12  128 bits  ECDHE-RSA-AES128-SHA
    Accepted  TLS12  128 bits  AES128-GCM-SHA256
    Accepted  TLS12  128 bits  AES128-SHA256
    Accepted  TLS12  128 bits  AES128-SHA

Application Load Balancer で ECDSA 証明書を適切に設定した場合、出力にはネゴシエートされた <ECDHE-ECDSA-*> 暗号スイートが表示されます。出力に他の暗号スイートが表示される場合は、Application Load Balancer セキュリティポリシーを確認して更新します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?