背景故事
大家好,我是是Dream呀,最近很多朋友在问Dream,你知道怎么利用ACM快速申请免费的公有整数吗?emmmm这个我确实是了解过,不过也还没有真正学习过。于是趁着这个机会,我立马学习了起来!经过一天的摸索前进,Dream终于是把这个东西从头到尾搞明白啦! 接下来我把一些具体详细的操作过程告诉大家: 如果你是小白的话建议从头开始阅读,如果你对这方面有所涉猎可以跳过1.知识储备和2.准备工作这两个环节,直接进入到3.申请证书的实战中去! 你将学到:
- ACM以及SSL/TLS 证书相关知识
- 利用ACM申请免费证书
- 在ALB上启用HTTPS并配置ACM公有证书
- 在CloudFront上启用HTTPS并配置ACM公有证书
- 在Amazon API Gateway上启用HTTPS并配置ACM公有证书
1.知识储备
1.1 什么是 AWS Certificate Manager (ACM)?
ACM 是一项服务,可帮助您轻松地预置、管理和部署公有和私有安全套接字层/传输层安全性 (SSL/TLS) 证书,以便用于 Amazon 产品和您的内部互联资源。SSL/TLS 证书用于保护网络通信的安全,并确认网站在 Internet 上的身份以及资源在私有网络上的身份。使用ACM,您无需再为购买、上传和续订 SSL/TLS 证书而经历耗时的手动流程。利用 Amazon Certificate Manager,您可以快速请求证书,在 Amazon 资源上部署该证书,并让ACM处理证书续订事宜。它还让您能够为内部资源创建私有证书并集中管理证书生命周期。通过 ACM预置的专用于 ACM 集成服务的公有和私有 SSL/TLS 证书均免费。您只需为您创建的用于运行应用程序的 Amazon资源付费。
1.2 什么是 SSL/TLS 证书?
SSL/TLS 证书使 Web 浏览器能够标识使用安全套接字层/传输层安全性 (SSL/TLS) 协议的网站并与之建立加密的网络连接。证书在名为公有密钥基础设施 (PKI) 的加密系统中使用。通过 PKI,在双方都信任同一个第三方(称为证书颁发机构)的情况下,一方可以确认使用证书的另一方的身份。ACM 用户指南中的概念主题提供了更多背景信息和定义。
1.3 什么是私有证书?
私有证书可以识别和保护组织内的应用程序、服务、设备和用户等资源。在建立安全的加密通信通道时,每个终端节点都使用证书和加密技术向另一终端节点证明其身份。内部 API 终端节点、Web 服务器、VPN 用户、物联网设备以及许多其他应用程序都使用私有证书来建立其安全操作所需的加密通信通道。
1.4 公有证书和私有证书有什么区别?
公有证书和私有证书都可以帮助客户识别网络上的资源,并确保这些资源之间的通信安全。公有证书用于识别公共 Internet 上的资源,私有证书用于识别私有网络上的资源。其主要区别在于,应用程序和浏览器默认自动信任公有证书,而管理员必须显式配置应用程序以信任私有证书。公有 CA(颁发公有证书的实体)必须遵守严格的规则、提供操作可见性,并遵循浏览器和操作系统供应商规定的安全标准,这些标准决定他们的浏览器和操作系统自动信任哪些 CA。私有 CA 由私有组织管理,私有 CA 管理员可以制定自己的私有证书颁发规则,包括颁发证书的实践以及证书可以包含的信息。请参阅下面的 ACM 私有证书颁发机构,了解有关私有证书和私有证书颁发机构的更多信息。
1.5 使用 Amazon Certificate Manager (ACM) 和 ACM 私有证书颁发机构 (CA) 有什么好处?
借助 ACM,我们可以更加轻松地为 Amazon 平台上的网站或应用程序启用 SSL/TLS。使用 ACM,就不需要大量手动流程。ACM 还可管理证书续订,从而帮助我们避免因证书配置错误、撤销或过期而导致的停机。同时我们可获得 SSL/TLS 保护并轻松管理证书。为面向 Internet 的站点启用 SSL/TLS 有助于提高站点的搜索排名,满足加密动态数据的合规性要求。 当我们使用 ACM 管理证书时,它会应用强加密和密钥管理最佳实践来确保证书私有密钥得到安全保护和存储。通过 ACM,我们可以使用 Amazon 管理控制台、Amazon CLI 或 Amazon Certificate Manager API 来集中管理 Amazon 区域中 ACM 提供的所有 SSL/TLS 证书。ACM 与其他Amazon 产品集成,因此您可以请求 SSL/TLS 证书,然后通过 Amazon 管理控制台、Amazon CLI 命令或 API 调用为 Elastic Load Balancing 负载均衡器或 Amazon CloudFront 分配预置证书。 ACM 私有 CA 是一种托管的私有 CA 服务,可让我们以安全方式轻松管理私有证书的生命周期。ACM 私有 CA 为您提供高度可用的私有 CA 服务,而无需前期投资和操作私有 CA 所需的持续维护费用。ACM 私有 CA 将 ACM 的证书管理功能扩展到私有证书,从而使您能够集中管理公有证书和私有证书。通过为开发人员提供 API,ACM 私有 CA 允许他们以编程方式更敏捷地创建和部署私有证书。我们也可以针对需要自定义证书生命周期或资源名称的应用程序,灵活创建私有证书。借助 ACM 私有 CA,可以使用安全、按需支付的托管私有 CA 服务集中为您的关联资源创建、管理和跟踪私有证书。 CA 管理员可以使用 ACM 私有 CA 创建完整的 CA 层次结构,包括在线根 CA 和从属 CA,无需外部 CA。CA 层次结构为信任链顶部最可信的的根 CA 提供强大的安全和限制访问控制,同时允许对信任链较下层的从属 CA 进行更宽松的访问和批量证书颁发。我们使用人员可以创建安全CA,无需构建和维持自己的本地 CA 基础设施。
2.准备工作
2.1 进入开发环境
如果大家之前有账户的话,可以点击右侧按钮“登陆控制台”进入开发环境:登陆控制台如果大家没有的话:
- 海外区域业务或个人使用,请注册“海外区域账户”:海外注册Amazon
- 中国区域业务(需企业营业执照认证),请注册“中国区域账户”:国内注册 Amazon
以海外账号注册流程为例,进行操作: 1.首先点击国外注册AWS的链接:海外账号注册流程,进入注册页面,填写我们的信息:
2.然后填写完毕之后完善我们的个人资料以及公司信息:
3.然后填写完我们的信用卡信息:
4.接着我们需要填写我们的手机号来进行验证:
5.选择免费的服务,完成我们的注册:
6.最后我们便可以进入到我们的账号进入管理控制台啦:
2.2 开始使用 ACM
要开始使用 Amazon Certificate Manager,我们首先需要将导航到 Amazon 管理控制台中的“证书管理”,然后使用向导请求 SSL/TLS 证书。 如果已经创建了 ACM 私有 CA,我们可以选择需要公有证书还是私有证书,然后输入站点名称。也可以使用 Amazon CLI 或 API 请求证书。证书颁发后,您可以将其用于与 ACM 集成的“其他 Amazon 产品”。对于每项集成的服务,我们只需从 Amazon 管理控制台的下拉列表中选择您要部署的 SSL/TLS 证书即可。或者,您也可以执行一个 Amazon CLI 命令或调用一个 Amazon API,将该证书与您的资源关联起来。集成的服务随后会将该证书部署到您选择的资源。 同时我们可以将公有和私有 ACM 证书用于以下 Amazon 产品,这里就不再一一列举出来,打击可以自行查看: • Elastic Load Balancing – 请参阅 Elastic Load Balancing 文档 • Amazon CloudFront – 请参阅 CloudFront 文档 • Amazon API Gateway – 请参阅 API Gateway 文档 • Amazon Elastic Beanstalk – 请参阅 AWS Elastic Beanstalk 文档 • Amazon CloudFormation – 目前仅支持 ACM 管理的公有和私有证书。请参阅 AmazonCloudFormation 文档 此外,我们还可以将 ACM 私有 CA 颁发的私有证书用于 EC2 实例、容器、物联网设备和您自己的服务器,这都需要我们自己去亲手操作。
2.3 区域确认
对于ALB或者Amazon API Gateway服务,您需要选择在与之相同的区域来申请ACM证书;如果您使用的是海外区域Amazon CloudFront,则需要将证书配置在弗吉尼亚北部区域(us-east-1)。您可以在页面右上角确认当前所处区域。
3.申请证书
3.1 打开ACM服务控制台
在 Service 下拉框中,选择 “Security, Identity, & Compliance” > “Certificate Manager”
3.2 在证书管理页面,点击请求证书
选择请求公有证书
3.3 添加域名
您可以添加通配符域名,比如*.example.com, 这样对于同一个顶级的多个二级域名,可以使用同一个ACM公有证书,而不需要多次申请。
3.4 选择验证方式
如果您的域名托管在Route 53,则建议您使用DNS验证,并在验证页面,点击在Route 53中创建记录。否则,您可以按照页面提示,任意验证方式。
完成选择认证之后,我们只需要一直点击下一步即可,直到“步骤5:验证”页面,如果使用的是Route53托管域名,点击“在Route53中创建记录”就能一键完成验证。如果域名托管在其他DNS解析服务商,需要在对应的域名托管处创建如图中的所示CNAME记录:
3.5 配置成功后,过一会后即可查看状态为已颁发。
当我们发现我们的证书状态为已颁发状态时,这时就可以说明我们的认证证书已经申请成功啦!
4.选项一:在ALB上启用HTTPS并配置ACM公有证书
要在ALB上启用HTTPS并配置ACM公有证书,首先我们需要先找到ALB,并选择添加侦听器:
- 选择HTTPS协议,端口默认443并添加转发。
- 选择默认安全策略。
- 选择刚才创建的SSL证书,并保存。
网络异常,图片无法展示|
- 接下来您就可以使用HTTPS协议访问域名,测试是否配置成功。如果我们使用HTTPS协议访问域名没有出现拒接或者丢失的信息就说明我们已经配置完成啦,这里的每一步大家都需要认证操作,如果出现错误的话就自己多操作几次,我自身而言就是操作了好几次才成功的,多一点耐心其实就会成功!
5.在Amazon CloudFront上启用HTTPS并配置ACM公有证书
5.1 海外区域的配置方法如下:
在CloudFront上配置ACM公有证书需要在弗吉尼亚北部区域(us-east-1)预置ACM公有证书。
- 创建DNS记录,域名指向CloudFront域名。
- 编辑CloudFront分配。
- 在备用域名部分输入域名,并选择刚才之前创建的自定义SSL证书。
网络异常,图片无法展示|
5.2 中国区域的配置方法:
如果您使用的是中国区域,则需要先申请第三方证书,然后上传到Amazon Identity & Access Management(IAM)服务中,以下步骤展示上传证书的方法。 首先,进入CloudFront的编辑页面,然后选择 Custom SSL Certificate,点击Upload a Certificate to IAM 。然后需要我们尤其重视的是Certificate Name是不允许出现一些特殊字符的,例如横杠以及各种标点符号,否则将不能正确执行。
然后在证书下拉框中选择上传完成的证书即可。
6.在Amazon API Gateway上启用HTTPS并配置ACM公有证书
您需要使用HTTP API 或者REST API的自定义域名,本文以HTTP API为例。这里,我们假定您已经部署好API Gateway并且可以正常访问,如 test API。
- 选择自定义域名,点击创建:
网络异常,图片无法展示|
- 填入域名,创建区域性域名以及选择刚才创建的ACM证书,然后点击创建域名:
网络异常,图片无法展示|
- 创建完成后,点击 API映射,点击 配置API映射:
网络异常,图片无法展示|
- 点击 添加新映射,API选择之前部署的API Gateway,选择阶段、路径,这里的阶段要选择$default,路径可以选择不填入,最后点击保存,映射配置完成:
网络异常,图片无法展示|
- 观察域名详细信息,记录下API Gateway 域名,这里的域名还需要我们下一步去填入,可以提前复制在一边,需要时再使用,不然还需要回到上一步:
网络异常,图片无法展示|
- 添加DNS记录,将自定义域名解析到刚才记录的API Gateway域名: 首先点击添加新的映射,然后把我们的新的映射放到API框中,接着将阶段选择框中的选项进行选择$default,然后路径的话我们可以自己选择,也可以选择不填,最后只需要保存即可!
网络异常,图片无法展示|
至此,您就可以在域名解析生效后,使用自定义域名访问API Gateway了。
7.实战总结
本篇文章Dream向大家介绍了ACM证书的申请方法,以及我们如何在ALB上启用HTTPS并配置ACM公有证书,和在CloudFront上启用HTTPS并配置ACM公有证书,以及在Amazon API Gateway上启用HTTPS并配置ACM公有证书。希望大家可以从中收获到一些经验以及亲手部署的成就感和满足感~ 如果你顺利的完成了以上操作,相信你对ACM证书的相关知识和申请方法以及各种配置过程已经了如指掌啦!也快快去给身边需要申请ACM证书的小伙伴去露一手吧~如果还有任何问题的话,欢迎在评论区或者私信告诉我吧!
🌲🌲🌲 最后,作者很感谢能够阅读到这里的读者。如果看完觉得好的话,还请轻轻点一下赞或者分享给更多的人,你们的鼓励就是作者继续行文的动力。 ❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了,我们下期再见~