【发布时间】:2015-12-19 06:46:38
【问题描述】:
我想在法兰克福区域创建一个 S3 存储桶,并通过以下 URL 访问文件:https://files.stample.co/filename
所以我同时需要 HTTPS 和自定义 DNS 别名 (CNAME)。
据我了解,亚马逊有一个 URL https://*.s3.amazonaws.com 的通配符证书。
HTTPS / SSL
所以这个通配符将:
- 为
https://stample-files.s3.amazonaws.com工作 - 不适用于
https://files.stample.co.s3.amazonaws.com
所以我理解并得到其他 StackOverflow posts 确认的是,如果我希望 SSL 工作,我必须使用不带点的存储桶名称,否则带有通配符的 Amazon 证书将与存储桶域不匹配。
使用 DNS 别名/CNAME
在此S3 documentation 下,Customizing Amazon S3 URLs with CNAMEs 部分:
根据您的需要,您可能不希望“s3.amazonaws.com”出现在您的网站或服务上。例如,如果您在 Amazon S3 上托管您的网站图像,您可能更喜欢 http://images.johnsmith.net/ 而不是 http://johnsmith-images.s3.amazonaws.com/。
存储桶名称必须与 CNAME 相同。因此,如果创建 CNAME 以将 images.johnsmith.net 映射到 images.johnsmith.net.s3.amazonaws.com,http://images.johnsmith.net/filename 将与 http://images.johnsmith.net.s3.amazonaws.com/filename 相同。
这似乎是出于技术原因,否则亚马逊无法知道我们尝试定位的存储桶:
由于 Amazon S3 只能看到原始主机名 www.example.com 并且不知道用于解析请求的 CNAME 映射,因此 CNAME 和存储桶名称必须相同。
所以我在这里理解的是,要使 CNAME 起作用,我们必须在存储桶名称中使用点。
两者一起?
如果我在存储桶名称中使用点:
- SSL 不起作用
- CNAME 将起作用
如果我不在存储桶名称中使用点:
- SSL 可以工作
- CNAME 不起作用
我已经测试了这两种情况,但无法使 SSL 和 CNAME 一起正常工作。
我该怎么做才能让两者都发挥作用?在我看来,我想要实现的不是很花哨......
【问题讨论】:
标签: amazon-web-services amazon-s3 https dns cname