如何设置 DNS、AWS S3、AWS Cloudfront 和 AWS 证书管理器来保护多个站点

如何设置 DNS、AWS S3、AWS Cloudfront 和 AWS 证书管理器来保护多个站点

我正在尝试使用一个证书保护通过 AWS Cloudfront CDN 交付的多个静态 AWS S3 网站。

这篇 AWS 文章说我应该能够做到这一点,但它不起作用。

一个是网络应用程序,另一个是用于营销网络应用程序的网站。

您会在下面注意到大多数设置都是相同的。Cloudfrount CDN 和 GoDaddy DNS 中的 CNAME 设置基本上是所有不同之处。

Certificate settings / details:

 - Domain name: mydomain.us
 - Additional names: *.mydomain.us
 - Validation status: Success
 - Associated resources: arn:aws:cloudfront::[accountkey]:distribution/[CDN1] & same/[CDN2]

CDN 1 (web-app) settings:

 - Origin = web-app.s3.amazonaws.com
 - CNAMEs = *.mydomain.us
 - SSL Cert = mydomain.us
 - Domain name = [app].cloudfront.net

DNS 1 (web-app) settings:

 - CNAME = * | [app].cloudfront.net

*Site 1 (the web-app) successfully loads secured in HTTPS.

 - app.mydomain.us, custom.mydomain.us, etc.

CDN 2 (web-site) settings:

 - Origin = web-site.s3.amazonaws.com
 - CNAMEs = www.mydomain.us and web.mydomain.us
 - SSL Cert = mydomain.us
 - Domain name = [site].cloudfront.net
 - All other settings such as security policy, HTTP versions, viewer protocol policy and everything I can see are the same as CDN 1.

DNS 2 (web-site) settings:

 - CNAME = web | [site].cloudfront.net

 - CNAME = www | [site].cloudfront.net

 *Site 2 (the web-site) does not load secured 

 - web.mydomain.us or www.mydomain.us

所有 S3 设置都是相同的,除了 web 应用程序的 CORS 策略之外,所以我可以从 custom.mydomain.us 获取托管在 app.mydomain.us 上的资源。

我需要做哪些更改才能使其正常工作?

先感谢您!

答案1

在花费大量时间研究答案并写下这个详细问题之前,我觉得自己很愚蠢,没有弄清楚这一点。我提到查看器协议策略是相同的,但这并不意味着它们是正确的。我在 AWS Cloudfront CDN 分发设置中发现,我的查看器协议是 HTTP 和 HTTPS。

分发行为中的查看者协议策略必须将 HTTP 重定向到 HTTPS以获得我想要的行为。

感谢您的意见。

相关内容