更新 Classic Load Balancer 的 SSL 溝通組態 - Elastic Load Balancing

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

更新 Classic Load Balancer 的 SSL 溝通組態

Elastic Load Balancing 提供的安全政策已預先定義 SSL 溝通組態,可用於溝通用戶端和負載平衡器之間的 SSL 連線。如果將 HTTPS/SSL 通訊協定用於接聽程式,您可以使用其中一個預先定義安全政策,或使用自己的自訂安全政策。

如需關於安全政策的詳細資訊,請參閱Classic Load Balancer 的 SSL 溝通組態。如需有關 Elastic Load Balancing 提供之安全政策的組態的詳細資訊,請參閱 預先定義的 SSL 安全政策

如果您建立 HTTPS/SSL 接聽程式,不與安全政策相關聯,Elastic Load Balancing 會關聯預先定義的安全政策 ELBSecurityPolicy-2016-08 與您的負載平衡器。

如果您現有的負載平衡器具有不使用最新通訊協定和密碼的 SSL 交涉組態,建議您更新負載平衡器以使用 EL SecurityPolicy B -2016-08。如果您願意的話,您可以建立自訂組態。我們強烈建議您先測試新的安全政策,然後再升級您的負載平衡器組態。

以下範例說明如何更新適用於 HTTPS/SSL 接聽程式的 SSL 溝通組態。請注意,變更不影響負載平衡器節點所接收的請求,而這些請求都在等待路由到運作狀態良好的執行個體,但更新的組態將會與新的請求一起使用。

使用主控台更新 SSL 溝通組態

在預設情況下,Elastic Load Balancing 會建立最新預先定義政策與您的負載平衡器之間的關聯。新增新的預先定義政策時,建議您更新負載平衡器,以使用新的預先定義政策。或者,您可以選擇不同的預先定義安全政策或建立自訂政策。

使用主控台更新HTTPS/SSL 負載平衡器的 SSL 交涉組態
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡器),選擇 Load Balancer (負載平衡器)

  3. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

  4. 接聽程式索引標籤中,選擇管理接聽程式

  5. 管理接聽程式頁面上找到要更新的接聽程式,在安全政策下方選擇編輯,然後使用下列其中一個選項選取安全政策:

    • (建議使用) 保留預設原則 ELB SecurityPolicy -2016-08,然後選擇 [儲存變更]。

    • 選取預設政策以外的預先定義政策,然後選擇儲存變更

    • 選取自訂並至少啟用一個通訊協定和一個加密方式,如下所示:

      1. 對於 SSL Protocols (SSL 通訊協定),選擇一或多個可啟用的通訊協定。

      2. 對於 SSL Options (SSL 選項),請選取 Server Order Preference (伺服器優先順序) 以使用適用於 SSL 溝通的預先定義的 SSL 安全政策

      3. 對於 SSL Ciphers (SSL 加密),選擇一或多個可啟用的加密方式。如果您已經具備 SSL 憑證,您必須啟用的加密方式須曾用於建立憑證,因為 DSA 和 RSA 加密方式是簽署演算法特有的。

      4. 選擇儲存變更

更新 SSL 交涉組態,使用 AWS CLI

您可以使用預設的預先定義安全政策、ELBSecurityPolicy-2016-08、不同的預先定義安全政策,或自訂安全政策。

使用預先定義的 SSL 安全政策
  1. 使用下列describe-load-balancer-policies命令列出 Elastic Load Balancing 提供的預先定義安全性原則。您使用的語法取決於您所使用的作業系統和 Shell。

    Linux

    aws elb describe-load-balancer-policies --query 'PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName}' --output table

    Windows

    aws elb describe-load-balancer-policies --query "PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName}" --output table

    下列為範例輸出:

    ------------------------------------------ | DescribeLoadBalancerPolicies | +----------------------------------------+ | PolicyName | +----------------------------------------+ | ELBSecurityPolicy-2016-08 | | ELBSecurityPolicy-TLS-1-2-2017-01 | | ELBSecurityPolicy-TLS-1-1-2017-01 | | ELBSecurityPolicy-2015-05 | | ELBSecurityPolicy-2015-03 | | ELBSecurityPolicy-2015-02 | | ELBSecurityPolicy-2014-10 | | ELBSecurityPolicy-2014-01 | | ELBSecurityPolicy-2011-08 | | ELBSample-ELBDefaultCipherPolicy | | ELBSample-OpenSSLDefaultCipherPolicy | +----------------------------------------+

    若要判斷哪些加密已針對來政策啟用,請使用下列命令:

    aws elb describe-load-balancer-policies --policy-names ELBSecurityPolicy-2016-08 --output table

    如需有關為預先定義安全政策的組態的詳細資訊,請參閱預先定義的 SSL 安全政策

  2. 使用此命create-load-balancer-policy令,使用您在上一個步驟中描述的其中一個預先定義的安全性原則來建立 SSL 交涉原則。例如,以下命令會使用預設的預先定義安全政策:

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=ELBSecurityPolicy-2016-08

    如果您超過負載平衡器原則數目的限制,請使用delete-load-balancer-policy命令刪除任何未使用的原則。

  3. (選擇性) 使用下列describe-load-balancer-policies命令驗證原則是否已建立:

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy

    回應包含政策的描述。

  4. 使用下列的set-load-balancer-policies監聽程式命令,在負載平衡器連接埠 443 上啟用原則:

    aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
    注意

    set-load-balancer-policies-of-listener 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。--policy-names 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用,它會被停用。

  5. (選擇性) 使用下列describe-load-balancers命令確認負載平衡器連接埠已啟用新原則:

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

    該回應會顯示政策已在連接埠 443 上啟用。

    ... { "Listener": { "InstancePort": 443, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTPS" }, "PolicyNames": [ "my-SSLNegotiation-policy" ] } ...

當您建立自訂安全政策,您必須至少啟用一個通訊協定,和一個加密方式。DSA 和 RSA 加密方式是專用於建立 SSL 憑證的簽署演算法。如果您已有 SSL 憑證,請務必啟用用於建立您的憑證的加密方式。您的自訂政策名稱不得以 ELBSample-ELBSecurityPolicy- 開頭,因為這些字首是預留給預先定義安全政策的名稱使用。

使用自訂 SSL 安全政策
  1. 使用此命create-load-balancer-policy令可使用自訂安全性原則建立 SSL 交涉原則。例如:

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true AttributeName=Protocol-TLSv1.1,AttributeValue=true AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true AttributeName=Server-Defined-Cipher-Order,AttributeValue=true

    如果您超過負載平衡器原則數目的限制,請使用delete-load-balancer-policy命令刪除任何未使用的原則。

  2. (選擇性) 使用下列describe-load-balancer-policies命令驗證原則是否已建立:

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy

    回應包含政策的描述。

  3. 使用下列的set-load-balancer-policies監聽程式命令,在負載平衡器連接埠 443 上啟用原則:

    aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
    注意

    set-load-balancer-policies-of-listener 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。--policy-names 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用,它會被停用。

  4. (選擇性) 使用下列describe-load-balancers命令確認負載平衡器連接埠已啟用新原則:

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

    該回應會顯示政策已在連接埠 443 上啟用。

    ... { "Listener": { "InstancePort": 443, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTPS" }, "PolicyNames": [ "my-SSLNegotiation-policy" ] } ...