设置 ELB 时,会自动配置一个子域(类似于some-junk-here.us-west-2.elb.amazonaws.com
)。对于我的用例,这个丑陋的域没问题,它适用于原始 HTTP 和 TCP 连接,但我们想启用 TLS。有没有办法在不设置自定义域的情况下使用 TLS?我认为这可以通过让 ELB 使用 Amazon 提供的通配符证书来解开 TLS 连接并将裸连接代理到我的 EC2 实例来实现(我相信这就是 Heroku、ngrok 等服务所做的)
默认情况下,仅通过 HTTPS(或 TLS 包装的 TCP 连接)进行连接似乎不起作用,而且我还没有找到有关此问题的任何文档(我所见过的与 TLS 有关的所有操作都涉及添加我自己的域和证书)
谢谢!
答案1
这行不通。TLS 证书提供两件事:设置加密的密钥和确保服务器不是冒名顶替者并有权为给定域提供请求的保证。获取此类证书需要您拥有或控制该域,但域amazonaws.com
不属于您。这就是为什么所有示例都涉及自定义域的原因。AWS 负载均衡器的主机名可以为您提供非 IP 地址的 DNS 目标,即在 DNS 中指向您的域的东西,因为负载均衡器的 IP 地址会随着扩展、故障或升级而随时间而变化。
您可以使用 openssl(或 easyrsa,openssl 的包装器)创建自己的自签名证书,甚至自己的私有证书颁发机构,如果您的客户愿意,您可以更新他们的信任存储,但最简单的解决方案是获取一个域,或者从您已有的域中创建一个子域。从技术上讲,该域甚至不必托管在 Route 53 中。然后从免费的 Amazon 证书管理器获取证书。