我的域名指向cloudfront,后者又使用自定义源引用我的EC2实例。在这种情况下,它是来自EC2的公共DNS名称,如xxxxx.us-west-2.compute.amazonaws.com。这使它的行为类似于反向代理。
我有一个获取用户信息的表单,因此我想设置SSL。因为我的主域名指向云端,
当使用CF作为反向代理缓存且EC2实例是自定义域时,如何设置cloudfront和EC2实例之间的关系。
我会这样做:
编辑:为了清晰起见,修改了标题和一些正文。
答案 0 :(得分:1)
是的,这正是这个想法。
您错过的一步是您还需要一个主域名的证书,您将安装"在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证书的问题)......这也意味着您不能在原产地使用自签名证书。
答案 1 :(得分:-1)
您可以获得SSL证书并将其分配给您的CF.有两种方法可以做到这一点:
http://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-procedures.html