gpt4 book ai didi

amazon-web-services - 使用 Elastic Beanstalk 应用程序启用 HTTPS 和 HTTP

转载 作者:行者123 更新时间:2023-12-02 00:57:22 25 4
gpt4 key购买 nike

我们正在尝试设置对我们使用 Elastic Beanstalk 部署的网站的 HTTPS 访问。

以下是我们已采取的步骤:

  • 从 Amazon Certificate Manager 获得证书。
  • 在我们的 EB 应用程序环境中,在 Configuration 下,我们向 Classic Load Balancer 添加了另一个监听器。这个新监听器的设置是这样的:
    Port: 443  
    Protocol: HTTPS
    Instance Port: 443
    Instance Protocol: HTTPS
    SSL certificate: (certificate that we created in step 1)
  • 由于添加此新监听器创建了另一个具有 443 入站规则的安全组,因此该安全组已添加到实例中。
  • 最后,我们转到了负载均衡器页面,对于这个应用程序的负载均衡器,我们添加了另一个具有以下设置的监听器:
    Load Balancer Protocol: HTTPS  
    Load Balancer Port: 443
    Instance Protocol: HTTPS
    Instance Port: 443
    Cipher: ELBSecurityPolicy-2016-08 (default)
    SSL Certificate: (certificate that we created in step 1)

  • 但是我们仍然无法通过https访问我们的网站。知道还需要做什么吗?

    还有一点。在步骤 #4 中,如果只有 443 负载均衡器端口存在以下设置:
    HTTPS 443 HTTP 80 (cert)

    然后,该网站只能通过 https 而不是 http 访问。

    所以这个调整表明证书没有问题。

    我们的配置中缺少什么?

    最佳答案

    如果您在 EB 设置中将证书分配给监听器,默认情况下它会分配给负载均衡器。负载均衡器终止来自 Internet 的 HTTPS 连接,并且 communicates with the instances using HTTP (无加密)。因此,您需要从负载均衡器向实例打开未加密的端口 80。

    如果您必须拥有 end-to-end encryption到您的实例,您需要配置您的 EB 环境以直接通过负载均衡器传递 HTTPS:

    .ebextensions/https-reencrypt-clb.config

    Use this configuration file with a Classic Load Balancer. In addition to configuring the load balancer, the configuration file also changes the default health check to use port 443 and HTTPS, to ensure that the load balancer can connect securely.


    option_settings:
    aws:elb:listener:443:
    InstancePort: 443
    InstanceProtocol: HTTPS
    aws:elasticbeanstalk:application:
    Application Healthcheck URL: HTTPS:443/

    更新您的 Security Group config对于您的实例:

    .ebextensions/https-instance-securitygroup.config
    Resources:
    sslSecurityGroupIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
    GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
    IpProtocol: tcp
    ToPort: 443
    FromPort: 443
    CidrIp: 0.0.0.0/0

    并在实例上配置证书,可以是自签名证书:

    .ebextensions/https-backendauth.config
    option_settings:
    # Backend Encryption Policy
    aws:elb:policies:backendencryption:
    PublicKeyPolicyNames: backendkey
    InstancePorts: 443
    # Public Key Policy
    aws:elb:policies:backendkey:
    PublicKey: |
    -----BEGIN CERTIFICATE-----
    ################################################################
    ################################################################
    ################################################################
    ################################################################
    ################################################
    -----END CERTIFICATE-----

    查看更详细的纲要,其中包含不同类型负载均衡器的选项 here .

    关于amazon-web-services - 使用 Elastic Beanstalk 应用程序启用 HTTPS 和 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53299723/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com