更新 Classic Load Balancer 的SSL协商配置 - Elastic Load Balancing

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新 Classic Load Balancer 的SSL协商配置

Elastic Load Balancing 提供的安全策略具有预定义的SSL协商配置,用于协商客户端和您的负载均衡器之间的SSL连接。如果您对监听器使用HTTPS/SSL协议,则可以使用预定义的安全策略之一,也可以使用自己的自定义安全策略。

有关安全策略的更多信息,请参阅SSL经典负载均衡器的协商配置。如需了解 Elastic Load Balancing 提供的安全策略的配置,请参阅预定义SSL的安全策略

如果您在不关联安全策略的情况下创建HTTPS/SSL侦听器,Elastic Load Balancing 会将默认的预定义安全策略与您的负载均衡器关联起来。ELBSecurityPolicy-2016-08

如果您愿意,可创建一个自定义配置。我们强烈建议您在升级负载均衡器配置之前测试安全策略。

以下示例说明如何更新HTTPS/SSL侦听器的SSL协商配置。请注意,更改不影响由负载均衡器节点接收并等待路由到运行正常的实例的请求,但是更新的配置将用于接收的新请求。

使用控制台更新SSL协商配置

默认情况下,Elastic Load Balancing 将最新的预定义策略与您的负载均衡器关联。添加新的预定义策略后,建议您将负载均衡器更新为使用新的预定义策略。或者,您也可以选择其他预定义安全策略或创建自定义策略。

使用控制台更新HTTPS/SSL负载均衡器的SSL协商配置
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的负载均衡下,选择负载均衡器

  3. 选择负载均衡器的名称以打开其详细信息页面。

  4. 侦听器选项卡上,选择管理侦听器

  5. 管理侦听器页面上,找到要更新的侦听器,选择安全策略下的编辑,然后使用下面的任意一种选项选择安全策略:

    • 保留默认策略,即 ELBSecurityPolicy-2016-08,然后选择保存更改。

    • 选择除默认策略以外的预定义策略,然后选择保存更改

    • 选择自定义,然后至少启用一项协议和一个密码,如下所示:

      1. 对于SSL协议,选择一个或多个要启用的协议。

      2. 在 “SSL选项” 中,选择 “服务器订单首选项”,使用中列出的顺序预定义SSL的安全策略进行SSL协商。

      3. 对于SSL密码,请选择一个或多个要启用的密码。如果您已有SSL证书,则必须启用用于创建证书的密码,因为DSA和RSA密码是签名算法所特有的。

      4. 选择 Save changes(保存更改)

使用更新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-policiesof-listener 命令在负载均衡器端口 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证书,请务必启用用于创建证书的密码。您的自定义策略的名称不得以 ELBSecurityPolicy-ELBSample- 开头,因为这些前缀是为预定义安全策略的名称保留的。

使用自定义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-policiesof-listener 命令在负载均衡器端口 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" ] } ...