【问题标题】:A custom sub-domain via AWS CloudFront fails over https on S3 website, but works fine over HTTP通过 AWS CloudFront 的自定义子域在 S3 网站上通过 https 故障,但通过 HTTP 工作正常
【发布时间】:2021-11-01 09:49:01
【问题描述】:

我使用 CertBot 在 Amazon Linux EC2 实例上为 *.example.cz 创建了一个 Let's Encrypt 通配符证书。 附加到 EC2 上的 nginx Web 服务器的证书,网站在 HTTP 和 HTTPS 上都可以正常工作。有几条 DNS 记录 www.example.cz*.example.cz,类型为 A,带有 EC2 IP 地址。

然后将子域 cdn.example.cz 指向 S3 静态网站存储桶:

  1. 我将同一个通配符 SSL 证书从 EC2 导入到 AWS Certificate Manager。
  2. 使用导入的 SSL 证书创建了 CloudFront 分配。
  3. 创建了一条 CNAME 记录 cdn.example.cz 并将其指向 S3 存储桶的 URL。

当我使用 http://cdn.example.cz/object.jpg 从 S3 请求对象时,它可以工作,但是通过 HTTPS 的请求一直忙到超时。

我尝试了 CloudFront 的备用域名为 cdn.example.cz,还尝试了 www.example.cz example.cz。没有任何效果。

AWS 证书管理器

CloudFront 分发

CloudFront 分发来源

【问题讨论】:

  • 您的原始设置是什么?匹配观众?
  • 试过Redirect HTTP to HTTPSHTTP and HTTPS,截图上传

标签: amazon-web-services amazon-ec2 lets-encrypt wildcard-subdomain


【解决方案1】:

CNAME 记录必须指向 CloudFront Distribution 域名 xxxxxxx..cloudfront.net

对此我不确定,但我还从 Origin 域名中删除了 eu-south-1,所以现在是 cdn.example.cz.s3.amazonaws.com

更新 CloudFront 分配后,我不得不等待几个小时才能正确传播更改(因为它最初指向 S3,然后我才知道 SSL 需要 CloudFront)。一旦完成,此设置就完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多