如何在Cloudfront之间将SSL设置为具有EC2自定义来源的反向代理缓存?

柯蒂斯·希普利

我的域名指向cloudfront,而Cloudfront则使用自定义来源引用了我的EC2实例。在这种情况下,它是EC2中的公共DNS名称,例如xxxxx.us-west-2.compute.amazonaws.com。这使其表现得像反向代理。

我有一个接受用户信息的表格,所以我想设置SSL。因为我的主域名指向CloudFront的,

当使用CF(例如反向代理缓存)且EC2实例是自定义域时,如何设置Cloudfront与EC2实例之间的关系。

我这样做:

  1. 为我的来源创建一个子域,例如“ origin.mydomain.com”
  2. 获取origin.mydomain.com的SSL证书
  3. 设置origin.mydomain.com在CloudFront的起源,而不是由亚马逊创建的实例域。(不是xxxxx.us-west-2.compute.amazonaws.com)

编辑:修改标题和一些正文以便清楚。

迈克尔-SQLbot

是的,这就是这个主意。

您错过的步骤是,您还需要针对主域的ssl证书,该证书将“安装”在CloudFront发行版上。

因此,您需要两个证书(或一个多域-有时称为SAN或UCC-或可以使用通配符证书),因为-正如您正确指出的那样-CloudFront是反向代理(不仅在这种情况下- -这正是CloudFront的含义,即缓存逆向代理)。

如果你只对原点的证书,CloudFront的和原点之间的通信将进行加密,但浏览器和CloudFront的之间的流量也不会。

在CloudFront方面,您可以购买一个证书,也可以从AWS Certificate Manager免费获得证书。这些证书可与CloudFront和ELB一起使用,但不能直接安装在EC2上,因此,如果您不使用ELB,则需要在其他位置获得证书。

Gandi会以16美元的价格向您出售EC2实例的简单证书,该证书可在CloudFront之后使用。我与他们没有任何隶属关系,但我提到了这一点,因为我知道它可与CloudFront配合使用-我将其用于此目的。LetsEncrypt和StartSSL将免费提供给您,但可以说涉及更多工作。我认为如果将它们安装在CloudFront后面的源上,它们应该可以工作,但是这将取决于CloudFront信任存储所信任的那些CA,这很可能是事实,但不一定能保证。CloudFront将拒绝使用无法识别的CA颁发的SSL证书连接到源(它返回502错误,并且过去我在CloudFront后面遇到StartSSL证书的麻烦)...这也意味着您原点不能使用自签名的证书。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将CloudFront设置为每个来源具有自定义错误页面

如何在我的 EC2 集群前设置 ssl 加密反向代理?

具有自定义来源和相同域的Cloudfront

具有高度的自定义操作栏如何将背景设置为全屏

具有代理的自定义元素,获取和设置

如何在EC2中将Amazon API Gateway与我的自定义API连接

CloudWatch自定义EC2内存指标和具有AutoScaling策略的警报

如何使用自定义来源正确设置Amazon Route 53,CloudFront

如何在具有MySQL的AWS EC2上为Laravel 5设置环境变量

如何在Elastic Beanstalk环境中自定义EC2实例

如何在EC2服务器上访问.emacs文件进行自定义?

如何将<ul>内部的<li> s样式设置为具有自定义高度的表格?

如何将具有文档ID的自定义对象设置为扑扑中的Firestore中的集合?

CloudFront如何在S3的现有分发服务网站上设置反向代理

如何在Nginx中为自定义位置设置双向SSL?

如何在Rails 4中为自定义位置设置双向SSL?

R:ggplot将ylim设置为具有自定义间隔

CloudFront和一个EC2来源之间的连接如何使用HTTPS工作?

Cloudfront和Lambda @ Edge-根据用户代理从自定义来源获取

为什么带有ALB自定义来源的CloudFront分布比没有CloudFront的ALB慢?

如何在Amazon EC2上设置具有自动扩展功能的ElasticSearch集群?

CloudFront-从S3服务静态网站,将API请求路由到自定义端口上的EC2

CloudFront来源请求自定义S3逻辑来源,是否仍在使用边缘位置缓存的数据?

SpecFlow-如何在具有自定义类型的实体上设置测试数据

如何在Postgres C函数中将数组返回为具有自定义类型的数组?

如何在discord.py上为具有自定义状态的成员赋予角色

如何在具有不同端口的反向代理后面设置eureka客户端?

如何在Strongloop上为自定义远程方法设置自定义架构

如何在 DevOps 发布定义中设置自定义代理池?