带有Elastic Beanstalk的AWS SSL证书:无法访问HTTPS站点

use*_*706 5 ssl amazon-web-services amazon-elastic-beanstalk aws-security-group amazon-acm

当我将AWS证书与我的Elastic Beanstalk应用关联并使用https访问域时,我得到'无法访问此站点,mydomain.com拒绝连接.' 我可以使用http访问该网站.

我使用AWS的ACM创建了一个安全证书.我添加了我的域名example.com,以及作为证书子域的其他名称.在我的应用程序环境"加载平衡"部分中,我将其设置为:

在此输入图像描述

awseb-e-abc123-stack-*为我的环境设置了SecurityGroup ,如下所示: 在此输入图像描述

还有另一个名为的安全组awseb-e-abc123-stack-AWSEBLoadBalancerSecurityGroup-*,如下所示.它与上面的组具有相同的名称标记,与我的环境名称相同:

在此输入图像描述

但是,似乎"AWSEBLoadBalancerSecurityGroup"安全组的条目不执行任何操作,因为删除所有条目仍允许HTTP流量工作.

.elasticbeanstalk\securelistener.config,我有以下内容

option_settings:
  aws:elb:listener:443:
    SSLCertificateId: <my certificate's ARN>
    ListenerProtocol: HTTPS
    InstancePort: 80
Run Code Online (Sandbox Code Playgroud)

但是,如果我在此文件中添加语法错误,部署仍然会成功.

这是输出curl -vL https://<my domain>:

* Rebuilt URL to: https://<my domain>/
*   Trying <my elastic IP>...
* connect to <my elastic IP> port 443 failed: Connection refused
* Failed to connect to <my domain> port 443: Connection refused
* Closing connection 0
curl: (7) Failed to connect to <my domain> port 443: Connection refused
Run Code Online (Sandbox Code Playgroud)

我使用单独的域名注册来设置我的域名,并设置我的域的DNS A记录IP地址等于我的弹性IP.

[编辑]

我上面提到过,更改负载均衡器安全组的规则什么都不做.这是因为我的EC2实例的安全组指向实例的安全组,而不是负载均衡器的安全组.当我将EC2的安全组指向负载均衡器的安全组时,安全组的规则被执行.我通过从负载均衡器安全组中删除所有规则并查看没有接受任何请求来验证这一点.但是,如果我将HTTP和HTTPS规则添加回负载均衡器安全组但从实例安全组中删除所有规则,则所有HTTP请求都将通过.这不是预期的行为,因为负载均衡器应该将流量转发到实例.似乎正在发生的事情是(1)实例和负载均衡器安全组根本不与实例和负载均衡器相关,以及(2)没有流量进入负载均衡器.

还有什么我想念的吗?

[编辑2]

我误读了gkrizek的评论.如果我使用负载均衡器的公共DNS,我可以使用HTTP或HTTPS进行连接.我可以使用telnet连接到这两个版本.因此,我没有创建将testdomain.com设置为弹性IP的A记录,而是创建了一个sub.testdomain.com CNAME记录集到负载均衡器.现在我可以浏览到http://sub.testdomain.comhttps://sub.testdoamin.com.两个问题:

  • 可以在CNAME记录中使用负载均衡器的公共DNS吗?我不能使用*.elasticbeanstalk.com网址,因为它可能会改变,所以我想知道这里是否适用相同的情况
  • 我如何保护https://testdomain.com(没有子域名).看起来这种方法似乎是不可能的,https://testdomain.com因为我不能用域名创建A记录.

use*_*706 5

问题是您必须使用您的域创建CNAME记录,并使用负载均衡器DNS名称作为地址.如果使用弹性IP,请求将不会转到负载均衡器.

回答我的上一个问题:

  • AWS表示这没关系
  • 在AWS允许您将弹性IP分配给负载均衡器之前,这是不可能的