免费SSL证书

从AWS申请免费的SSL证书并对DKIM排错

今天来给大家介绍一下使用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验证

下面我们主要讨论使用 DNS 验证。

图形用户界面, 文本, 应用程序

描述已自动生成

选择 DNS验证。选择 审核在 验证 页面上,展开域名信息或选择 下载的验证文件。如果展开域信息,ACM 会显示您必须添加到 DNS 数据库中的 CNAME 记录的名称和值以验证您是否控制该域。

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

记录包含两部分:名称和标签。ACM 生成的 CNAME 的名称部分是由一个下划线字符 (_),后跟一个令牌(这是绑定到您的 AWS 账户和域名的唯一字符串)构建的。ACM 在您的域名前加上下划线和令牌来构建名称部分。ACM 通过一个下划线字符,其后跟一个不同的令牌来构建标签,此令牌也与您的 AWS 账户和域名绑定。ACM 在下划线和令牌后加上 AWS 用于验证的 DNS 域名:AWS Certificate Manager - Amazon Web Services (AWS)。以下示例显示了 Example Domain、subdomain.example.com 和 *.example.com 的 CNAME 格式。

表格

中度可信度描述已自动生成

添加包含域名 的 CNAME 记录可能会导致域名重复。要避免重复,您可以仅手动复制所需的 CNAME 部分。其格式为 _3639ac514e785e898d2646601fa951d5(下面我们会详细解释)。更新 DNS 配置后,选择继续。ACM 会显示一个表格视图,其中包含您的所有证书。它显示了您请求的证书及其状态。在 DNS 提供商传播您的记录更新后,ACM 最多需要几个小时来验证域名并颁发证书。在此期间,ACM 显示验证状态为等待验证。验证域名后,ACM 将验证状态更改为成功。AWS 颁发证书后,ACM 将证书状态更改为已颁发。

最后就可以成功地申请到自己的免费证书了

由于验证时间一般需要1-24小时不等,所以下面就不进行展示了

如何正确设置DKIM

什么是DKIM,DKIM代表DomainKeys Identified Email。它提供了一种方法来验证发送电子邮件的组织是否有权这样做。DKIM需要在DNS区域中添加公钥。关键是通常由发送您的电子邮件,例如组织提供给您SendGrid,邮戳。密钥将作为TXT记录直接插入您的区域,或者它将是指向提供商DNS中密钥的CNAME。我在做这篇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记录是否存在。

软文来源: https://baijiahao.baidu.com/s?id=1675614040895948947&wfr=spider&for=pc

分享到:
关键词:主机域名

网友留言(0 条)

发表评论