amazon-web-services - 通过 AWS CloudFront 的自定义子域在 S3 网站上通过 https 故障,但通过 HTTP 工作正常
问题描述
*.example.cz
我使用 CertBot 在 Amazon Linux EC2 实例上创建了 Let's Encrypt 通配符证书。附加到 EC2 上的 nginx Web 服务器的证书,网站在 HTTP 和 HTTPS 上都可以正常工作。有几个 DNS 记录www.example.cz
,*.example.cz
类型A
为 EC2 IP 地址。
然后将子域cdn.example.cz
指向 S3 静态网站存储桶:
- 我将相同的通配符 SSL 证书从 EC2 导入到 AWS Certificate Manager。
- 使用导入的 SSL 证书创建了 CloudFront 分配。
- 创建 CNAME 记录
cdn.example.cz
并将其指向 S3 存储桶的 URL。
当我使用它从 S3 请求一个对象时,http://cdn.example.cz/object.jpg
它可以工作,但是通过 HTTPS 的请求一直很忙,直到超时。
我尝试了 CloudFront 的备用域名cdn.example.cz
,也尝试了www.example.cz
example.cz
. 没有工作。
解决方案
CNAME
记录必须指向 CloudFront 分配域名
xxxxxxx..cloudfront.net
我不确定这一点,但我也eu-south-1
从 Origin 域名中删除了,所以现在是cdn.example.cz.s3.amazonaws.com
更新 CloudFront 分配后,我不得不等待几个小时才能正确传播更改(因为在我意识到 SSL 需要 CloudFront 之前,它最初指向 S3)。一旦完成,此设置就可以完美运行。
推荐阅读
- r - 使用 purrr map2 将嵌套数据中的 if then 构造转换为 case_when
- c# - 在 C# 中将文件文本解析为字典
- ios - 如何在 Swift 的另一个 ViewController 中打印选定单元格的数据?
- html - 停止文字环绕图像
- python - 如何在没有 pip 的情况下在 Windows 上升级 numpy?
- jquery - CSS检查+标签样式不起作用
- android - Sqlite 仅与当前日期比较
- html - 将 wamp html/css/js 移动到节点简单易行的方法
- java - 使用 JDK 9 和 JDK 10 运行 Apache TomEE 7.0.4
- typescript - React Native + TypeScript + 异步