AWS EC2与CloudFront: 透过ACM申请免费凭证/Cloudflare管理DNS

本案例情境: 原本就有一个网站在EC2上运作,每年自行上传更新的付费SSL凭证,想改用AWS Certificate Manager (ACM)颁发的免费凭证;网站DNS是透过Cloudflare管理。

为何使用AWS凭证?

除了免费外,AWS凭证会自动更新,不会有到期的问题。

为何要使用CloudFront?

根据AWS指南,公有ACM凭证可以安装在连接到Nitro Enclave的Amazon EC2执行个体上,但不适用于其他Amazon EC2执行个体。本案例属于后者,因此需要透过CloudFront连接EC2。

CloudFront与负载平衡器Amazon Elastic Load Balancer(ELB)差别?

CloudFront是以流量计费,ELB以小时计费,前者适用于流量小的网站。

架构

user => Cloudflare(DNS) => CloudFront(with SSL) => website

STEP1 透过ACM申请免费SSL凭证

到ACM介面,右上角选取维吉尼亚州北部,然后请求凭证。
这很重要,免费凭证只能在维吉尼亚州北部,此区域与EC2所在地区无关。
http://img2.58codes.com/2024/20160062bnIUWotRKV.png
接着选取请求公有凭证(实际上你也只有这个可以选)后下一步。
网域名称> 你要申请凭证的网域 (www.example.com or aaa.example.com)
验证方法> DNS验证-建议 我自己习惯用这个方法,操作方法网路上很多教学,简单快速
金钥演算法> RSA 2048
请求并完成验证之后,列出凭证的画面就会长这样:
http://img2.58codes.com/2024/20160062VePl0A2n3Q.png

STEP2 建立CloudFront分布

如题--
http://img2.58codes.com/2024/201600620GAmW4HsNJ.png
首先会需要填写来源网域,到你EC2执行个体的页面找到公有IPv4 DNS,複製它并贴到CloudFront来源网域。
通讯协定选择仅透过HTTP。
http://img2.58codes.com/2024/20160062SgE6DQktIr.png
设定预设快取行为:
检视器通讯协定政策> Redirect HTTP to HTTPS
快取索引键和来源请求> Cache policy and origin request policy (recommended)
快取政策> CachingDisabled
来源请求政策> AllViewer
其他我是没改,请看下图。
http://img2.58codes.com/2024/20160062zu0F899LWM.pnghttp://img2.58codes.com/2024/20160062epTelzRoj2.png
设定:
备用网域名称(CNAME)>新增项目>输入你刚申请SSL的网域
http://img2.58codes.com/2024/20160062XBC8Mzt3AM.png
自订SSL凭证>下拉式选单中会看到你在ACM申请的凭证
http://img2.58codes.com/2024/20160062KTetrtzdxI.png
其他都不用改,完成后按「建立分布」,刚建立完它会需要一阵子部署,
如果已经建置完成会显示上次修改时间,不需要重新整理,它会自己更新。
http://img2.58codes.com/2024/20160062BOrWwN4nIx.png

STEP3 移除原本的SSL凭证

前面案例情境有提到,我们原本是每年自行上传更新的付费SSL凭证,因此要先去移除它。
我是透过SSH登入root帐号修改EC2的conf文件,路径应该都会在/etc/httpd下面某个资料夹某个conf档案。
将有#的部分删除,或透过#注解掉。

<VirtualHost *:80>    DocumentRoot /www/example.com    ServerName example.com#    Redirect permanent / https://example.com/</VirtualHost><VirtualHost *:443>    DocumentRoot /www/example.com    ServerName example.com#    SSLEngine On#    SSLCertificateFile 原本SSL档案路径#    SSLCertificateKeyFile 原本SSL档案路径#    SSLCertificateChainFile 原本SSL档案路径</VirtualHost>

STEP4 测试CloudFront分布连结

http://img2.58codes.com/2024/20160062e7wbROc9oJ.png
回到CloudFront页面,複製分布网域名称测试一下,现在这个连结应该可以连到你的网站了。

STEP5 更新DNS(Cloudflare)

http://img2.58codes.com/2024/20160062gKbYbm16Ah.png
开启Cloudflare的DNS页面,将原本指向EC2执行个体公有IPv4地址的A纪录,改成指向CloudFront分布网域名称的CNAME。

大功告成!!

现在,你的网站就有AWS凭证啰!
http://img2.58codes.com/2024/2016006279sbhiq6xV.png

以上是个人尝试的纪录,如有观念错误欢迎讨论指教,感恩!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章