我的域名指向 cloudfront,而 cloudfront 又使用自定义源引用我的 EC2 实例。在本例中,它是来自 EC2 的公共 DNS 名称,例如 xxxxx.us-west-2.compute.amazonaws.com。这使得它的行为就像反向代理一样。
我有一个需要用户信息的表单,因此我想设置 SSL。因为我的主域指向cloudfront,
当使用 CF 作为反向代理缓存并且 EC2 实例是自定义域时,如何设置 cloudfront 和 EC2 实例之间的关系。
我会这样做吗:
- 为我的来源创建一个子域,例如“origin.mydomain.com”
- 获取 origin.mydomain.com 的 SSL 证书
- 将 origin.mydomain.com 设置为 cloudfront 中的源,而不是由 amazon 创建的实例域。 (不是 xxxxx.us-west-2.compute.amazonaws.com)
编辑:为了清晰起见,修改了标题和一些正文。
是的,正是这个想法。
您错过的步骤是您的主域还需要一个 ssl 证书,您将在 CloudFront 发行版上“安装”该证书。
因此,您需要两个证书(或一个多域 - 有时称为 SAN 或 UCC - 或者您可以使用通配符证书),因为 - 正如您正确指出的 - CloudFront 是一个反向代理(不仅仅是在这种情况下 - - 这正是 CloudFront,一个缓存反向代理)。
如果您只有源上的证书,则 CloudFront 和源之间的流量将被加密,但浏览器和 CloudFront 之间的流量不会被加密。
在 CloudFront 方面,您可以购买一个证书,也可以从 AWS 证书管理器免费获取证书。这些证书适用于 CloudFront 和 ELB,但无法直接安装在 EC2 上,因此如果您不使用 ELB,则需要在其他地方获取证书。
Gandi 将以 16 美元的价格向您出售 EC2 实例的简单证书,该证书在 CloudFront 后面运行。我与他们没有任何关系,但我提到这一点是因为我知道它可以与 CloudFront 配合使用——我为此使用它们。 LetsEncrypt 和 StartSSL 会免费为您提供一个,但是,可能需要做更多的工作。我认为如果安装在 CloudFront 后面的源上,这些应该可以工作,但这取决于 CloudFront 信任存储信任的那些 CA,这很可能是这种情况,但不一定能保证。 CloudFront 将拒绝使用由它无法识别的 CA 颁发的 SSL 证书连接到源(它返回 502 错误,过去我在 CloudFront 后面的 StartSSL 证书方面遇到了问题)...这也意味着您无法在源上使用自签名证书。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)