今天来给大家介绍一下使用AWS的免费工具申请SSL证书,以下各部分将讨论如何使用 AWS Certificate Manager (ACM)控制台来请求公有 ACM 证书。
登录 AWS 管理控制台,并通过以下网址打开 ACM 控制台:https://console.aws.amazon.com/acm/home。
在下图可以看出分为预置证书和私有证书两种,个人用户选用预制证书就可以,私有颁发机构为运营类型,所以个人用户基本不用这类。
在下面在 申请证书 页面上,键入您的域名。您可以使用完全限定域名 (FQDN)(例如 Example Domain),或者顶级域名(例如 Example Domain)。您还可以在最左侧位置使用星号 (*) 作为通配符来保护同一域中的多个站点名称。
必须先确认您拥有或可以控制请求中指定的所有域名,然后 Amazon 证书颁发机构 (CA) 才能为网站颁发证书。请求证书时,您可以选择电子邮件验证或 DNS 验证。
下面我们主要讨论使用 DNS 验证。
记录包含两部分:名称和标签。ACM 生成的 CNAME 的名称部分是由一个下划线字符 (_),后跟一个令牌(这是绑定到您的 AWS 账户和域名的唯一字符串)构建的。ACM 在您的域名前加上下划线和令牌来构建名称部分。ACM 通过一个下划线字符,其后跟一个不同的令牌来构建标签,此令牌也与您的 AWS 账户和域名绑定。ACM 在下划线和令牌后加上 AWS 用于验证的 DNS 域名:AWS Certificate Manager - Amazon Web Services (AWS)。以下示例显示了 Example Domain、subdomain.example.com 和 *.example.com 的 CNAME 格式。
最后就可以成功的申请到自己的免费证书了
由于验证时间一般需要1-24小时不等,所以下面就不进行展示了
我在做这篇Blog时发现一个问题,就是关于在DNS中加入CNAME时,有些DNS提供商不能够使用下划线开头,提示主机名类型不符。
SES创建的记录是CNAME而不是TXT记录,因此SES可以托管签名密钥。通过托管签名密钥,SES可以自动轮换签名凭据并降低任何密钥泄漏的风险。
某些DNS提供商不支持添加包含下划线的CNAME记录,尽管RFC特别允许这样做。但是,DKIM规范要求记录名称中的下划线,因此删除下划线不是一种选择。下划线是记录名称中唯一不受SES或其客户控制的部分。
虽然在Internet标准中不允许在dnsNames中使用下划线字符,但在TLS / SSL证书的SAN字段中使用时,也一直被视为灰色区域。如果在咱们的DNS商中发生此类事件的话,可以使用以下的方法进行解决:
第一种 解决方案可以更改DNS提供商。Amazon Web Services提供名为Amazon Route 53的可扩展域名服务,该服务遵循RFC强加的标准并允许SES生成的CNAME记录。使用SES与Route 53集成。如果您在Route 53上使用与SES相同的AWS账户设置域名,则可以通过一键式过程设置域验证和DKIM。
第二种 方法是使用子域(例如我们的例子中的sales.ses-example.com)进行电子邮件发送,并将其委托给DNS提供商,例如Amazon Route 53,它正确地允许CNAME记录中的下划线。然后,您可以使用与在主域上执行的相同步骤在子域上执行域验证和DKIM验证过程。电子邮件将被DKIM签名,但"发件人"地址将包含子域(在我们的例子中,"发件人"地址将是<any-local-part> @ sales.ses-example.com)。
第三种 选择使用自己进行签名。这将使您完全控制密钥和签名过程,但实现和维护需要更多的工作。
最后,您可以找DNS提供商,让他们在RFC允许的CNAME记录中正确支持添加对下划线。
对于我们的域名,我们假设我们的DNS提供商已经启用了对CNAME记录中下划线的支持,现在我们可以安全地添加DKIM文档中指定的所需DNS条目。通过此步骤,我们现在等待SES向我们发送确认电子邮件,并在SES控制台中将域的DKIM验证状态从Pending更改为已验证,这将确认CNAME记录是否存在。
本文由光环云SA团队原创,转载请注明作者及出处。需要更多AWS实操指南电子书,以及AWS认证考试资料,请联系光环云社群管理员索取。