如何將我的 Application Load Balancer TLS/SSL 接聽程式設定為使用 ECDSA 密碼?

上次更新日期:2022 年 3 月 11 日

我的 Application Load Balancer 的安全政策列出了 RSA 和 ECDSA 密碼。但是,當我連接到我的負載平衡器時,我總是看到選擇了 RSA 密碼。如何讓我的負載平衡器使用 ECDSA 密碼進行 TLS 加密?

簡短描述

Application Load Balancer HTTPS 接聽程式可以設定多個憑證,但需要一個安全政策。每個安全政策都包含 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 簽署的憑證匯入 ACM 並將其與 HTTPS 接聽程式關聯,以利用 ECDSA 密碼進行加密。

解決方案

若要將 ECDSA 密碼與 Application Load Balancer 配合使用,請執行以下步驟:

將新的 ECDSA 憑證匯入 AWS Certificate Manager 並繫結至 HTTPS 接聽程式

與 CA (憑證授權單位) 合作取得 PEM 格式的您網域的 ECDSA 憑證後,請執行以下步驟:

1.    將新的 ECDSA 憑證匯入 AWS Certificate Manager

2.    將新匯入的 ECDSA 憑證與 Application Load Balancer 關聯

(可選) 測試負載平衡器的 TLS 接聽程式是否受支援的密碼

若要測試將使用哪些協定和密碼,請使用開放原始碼命令列工具,如 sslscan

注意:使用 sslscan 允許您取得所有密碼的完整資訊,而無需使用額外的第三方公用程式。例如,如果使用 cURL,則必須指定個別密碼套件,這需要單獨的 cURL 請求指定 TLS 協定和密碼套件。

您可以在任何 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體或本機系統上安裝和執行 sslscan 命令。確保要測試的負載平衡器接受來自來源 IP 地址的 TLS 連線。

若要在 Amazon Linux EC2 執行個體上使用 sslscan,請執行以下步驟:

1.    啟用 Extra Packages for 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 安全政策


此文章是否有幫助?


您是否需要帳單或技術支援?