具有 CNAME 兼容虚拟名称的 AWS S3 url

问题描述 投票:0回答:3

我正在尝试为我的 us-east-1 s3 存储桶创建一个 cname,如下所示:

media.domain.com => media.domain.com.s3.amazonaws.com

我按照指南此处创建了一个具有符合 DNS 名称的存储桶。

但是,URL 不是类似 media.domain.com.s3.amazonaws.com 的 URL,而是以下内容,因为斜杠,我无法将其用于 cname 重定向:

https://s3.amazonaws.com/media.domain.com/

我在这里查看了 s3 路径弃用计划,我假设 us-east-1 会首先得到 this

但是,当我尝试通过推荐的路径访问域时这里

SSL 中断

我尝试过以下方法:

  • media.domain.com.s3.us-east-1.amazonaws.com
  • media.domain.com.s3-us-east-1.amazonaws.com (notice the dash between s3 and us)
  • media.domain.com.s3-control.us-east-1.amazonaws.com
  • media.domain.com.s3.amazonaws.com

我在这里做错了什么?

amazon-web-services ssl amazon-s3 cname
3个回答
4
投票

使用带有 SSL 的虚拟托管式存储桶时,SSL 通配符 证书仅匹配不包含点(“.”)的存储桶。到 解决这个问题,使用 HTTP 或编写自己的证书验证 逻辑

amazon-s3-path-deprecation-plan-the-rest-of-the-story

您需要重命名不包含

dots (".")
的存储桶或使用路径样式 URL 避免 SSL 错误。

因为它应该适用于

https://s3.amazonaws.com/media.domain.com/

但是 SSL 将会中断

media.domain.com.s3.amazonaws.com

或者您可以使用 @Chris 建议的 CloudFront,或者您可以查看另一个简单的选项 VirtualHostingCustomURLs

将自定义 SSL 与 S3 结合使用。

  • 创建云端发行版
  • SSL证书
  • 下添加SSL
  • Sepcify 备用域名 (CNAME),例如 media.domain.com
  • 创建origin Group并指定S3存储桶
  • 添加路由 53 记录以指向 Cloudfront 分布
  • 太棒了,您现在可以访问了
    https://media.domain.com/object.jpg


2
投票

您的自定义域上 HTTPS 的

media.domain.com.s3.amazonaws.com
CNAME 将无法通过任何 SSL 验证,因为证书适用于
s3.amazonaws.com
子域,而不是
media.domain.com
子域。

此外,尝试直接在浏览器中访问

media.domain.com.s3.amazonaws.com
将会导致 SSL 验证失败,因为 SSL 仅对单级子域有效 (
*.s3.amazonaws.com
)。

如果您想解决此问题,您将需要托管此域以解析为CloudFront 发行版,该发行版位于您的 S3 存储桶前面

通过执行此操作,您可以在创建应使用的发行版时指定 SSL。


0
投票

[2023] 暂时没有这样的问题 这是我使用的方法:

1- 将 CNAME 记录添加到 Cloudflare 上的域

2- 使用要在 AWS S3 上使用的子域和域名(例如“static.domain.com”)创建一个存储桶并将其设为公共。

3- AWS S3 上的存储桶 URL 现在如下所示 “https://s3.eu-central-2.amazonaws.com/static.domain.com” 但您在 CNAME 记录中 “static.domain.com.s3.eu-central-2.amazonaws.com” 你应该添加为

4- [最重要的一步] => 等等, 一旦进行上述设置,不要指望立即得到结果,您将收到 ssl 错误。 所以至少要等1小时才能看到结果。

祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.