我有一个运行着 Apache Web 服务器的 Amazon Linux 的 EC2 实例。
我已颁发 ACM SSL 证书。(我想将其用于子域,因此我已使用 *.mydomain.com 进行设置,并且已颁发)
我已经设置了一个应用程序负载均衡器,并在端口上启用了监听器
80
并443
打开了监听器。我已将 SSL 证书附加到该负载均衡器上。80
我已经设置了包含我的 EC2 实例的目标组。我已根据 AWS 文档设置了端口转发。
据我所知,我唯一要做的就是将通过 GoDaddy 托管的域指向我的负载均衡器。我找到了一个教程,上面说要创建一个A
记录集并将我的负载均衡器Alias
的添加DNS Name
为value
。当我这样做时,它告诉我我无法拥有记录,A
因为我已经设置了一个,但那是为我的子域设置的。我通过 Route 53 执行此操作。
当我为A
记录指定不同的名称时;例如,lb.test.example.com
它不会连接到域上的 HTTP test.example.com
。当我输入时lb.test.example.com
,浏览器提示该网站不安全,然后出现错误Bad Gateway
。
我在这里遗漏了什么?
答案1
常规通配符证书*.mydomain.com
对子域的子域无效(例如*.test.mydomain.com
)。为此,您需要一种称为统一通信或多域证书的东西。当然,您不能将同一个子域指向不同的服务,否则会产生意想不到的后果。
另外,为了正确理解术语:“别名”DNS记录不是记录A
,而是CNAME
记录。否则,您说得对,为指向负载平衡器名称的子域创建别名是实现您想要做的事情的一种方式。
另外要考虑的一件事——坦率地说,我不确定在 EC2 中具体是如何做到这一点的——是您可能想要创建某种规则来确保通过常规 http 连接的客户端自动转发到 https 版本的站点。一种方法是向客户端提供指向HTTP 301
预期目标的 HTTP 重定向 () 答案。EC2 可能会自动执行此操作(尽管我对此表示怀疑),但您应该确认是否是这种情况。