证书不匹配设置 Route53、CloudFront、自定义原点

证书不匹配设置 Route53、CloudFront、自定义原点

背景

我的网站已成功使用 CloudFlare 和 Let's Encrypt 一两年了。网站托管在 EC2 上,它们拥有根、www 和所有使用的子域的有效 Let's Encrypt 证书。该网站由 Wordpress 运营。

我正在做什么

作为一项学习练习,我决定将我的一个域名 wildphotography.co.nz 更改为 Route53 和 CloudFront。但效果并不好。

问题

从 CloudFlare 迁移到 Route53 并使用 CloudFront 后,我​​无法查看我的网站。详情如下。我希望的最终状态是 Route53 成为我的 DNS 服务器,CloudFront 成为我的 CDN。

请注意,我已恢复使用 CloudFlare,因为我需要我的网站在线。我使用 Route53 作为我的 DNS 服务器已有 3-4 个小时,我可以看到它解析为 R53。

问题详细信息

设置完成后,我在浏览器中看到以下问题

不安全的连接

由于 Route53 设置,域请求被发送到 CloudFront。CloudFront 提供的证书适用于 *.cloudfront.net 域。因此不匹配。我相信我理解这个问题,但我不知道如何解决它。

如果我访问 Cloudfront URL (d1b5f3w2vf82yc.cloudfront.net),就会出现此错误。当然,访问此 URL 通常不会有帮助。

CloudFront 错误

以下是 SSL 诊断信息

SSL 诊断

这是我的 CloudFront 设置。请注意,我在更改了一些小内容后截取了屏幕截图,这就是为什么它显示“正在进行中”。我在测试之前让它传播。

首先是 CloudFront 概述

CloudFront 概述

CloudFront 源设置

CloudFront 源设置

CloudFront 根行为

请注意,我在 Nginx Web 服务器上从 http 转发到 https,因此我不必费心让 CloudFront 执行此操作。这为我的日志提供了更多信息,对诊断很有用。

CloudFront 根行为

Route53 设置

我删除了一些与电子邮件相关的不相关记录。请注意,www 和非 www 域都是指向 CloudFront 分发的别名记录。它不会接受 cname 别名 - 我甚至不确定这是否是有效的组合。

Route53 设置

我尝试过的方法

我创建了一个新的子域名 origin.wildphotography.co.nz,它是 www.wildphotography.co.nz 的别名。我认为这是必要的,这样 CloudFront 才能找到原始服务器的 IP。

我尝试过 CNAME、别名和非别名等各种各样的东西。

奇怪的是,当仍然使用 R53/CloudFront 设置时,一些请求会通过 CloudFront 发送。虽然不多,但还是有一些。

任何想法都将不胜感激。我怀疑我的 Route53 设置不正确。

答案1

首先,您需要将自定义 SSL 证书上传到 Cloudfront,以避免 SSL 验证期间出现问题。如果您没有上传对您的网站名称有效的自定义证书,Cloudfront 会提供仅对其自己的域名 cloudfront.net 有效的证书。

然后,您需要 Route53 中 DNS 区域中的几个记录:

  • 公共网站记录(“www”和顶尖)应指向您的 Cloudfront 分布。
  • 您的 Cloudfront 源设置需要另一个辅助记录(例如“源”),因为 Cloudfront 不允许 IP 源。此辅助记录应指向您的实际 Web 服务器。您必须配置您的分发以转发 Host 标头,以便您的 Web 服务器能够提供正确的内容。

通过此设置,您的客户将通过您的 www/apex 记录路由到 Cloudfront,而 Cloudfront 将通过源记录定位实际的 Web 服务器。Clodflare 让您无需实现所有这些逻辑,因为您将 DNS 委托给他们,但实际上,当您在 DNS 面板中启用 CDN 功能时,他们在后台执行此操作。

答案2

请注意,您还可以通过 ACM 从 AWS 获取证书,无需额外付费。您获得的证书随后可以部署到您域的 CloudFront 上。有关详细信息,请访问 -http://docs.aws.amazon.com/acm/latest/userguide/gs-cf.html并阅读博客文章 -https://aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/

相关内容