Domain-Name-System
帶有 S3 儲存桶的 CNAME
我有一個 Web,我想將其圖像移動到 AWS S3。假設它被呼叫
mypage.com
,我可以訪問這樣的圖像:https://mypage.com/pics/one.jpg
我創建了一個儲存桶
static.mypage.com
來放置所有圖像,所以現在我可以像這樣訪問圖像:https://static.mypage.com.s3.eu-west-1.amazonaws.com/pics/one.jpg
由於它是一個很長的名稱,我想使用 DNS 的“縮短器”。
所以,我想知道如何在我的 DNS 提供商中設置 CNAME,以便如果我去…
https://static.mypage.com/pics/one.jpg
…我會從桶中獲取圖像。
謝謝!
在過去,S3 支持FQDN 儲存桶名稱- 即正是您所需要的。其中 FQDN = 完全限定域名,即完整的主機名,如static.mypage.com。問題是這僅適用於 HTTP 而不適用於 HTTPS,因為無法讓 S3 使用帶有您的儲存桶名稱/主機名 ( static.mypage.com ) 的 SSL 證書。
如果您對僅 HTTP 的流量感到滿意,您仍然可以這樣做。只需在您的註冊商處創建一個
static.mypage.com
指向s3.eu-west-1.amazonaws.com
. S3 將辨識Host:
請求中的標頭並查看正確的 S3 儲存桶。如果儲存桶中的對象可以公開訪問,那麼 URL http://static.mypage.com/pics/one.jpg應該可以正常工作。但是,一旦您通過 HTTPS 訪問相同內容,您將收到 SSL 證書驗證錯誤,因為 S3 證書 * .s3.eu-west-1.amazonaws.com中的主機名與預期的static.mysite.com不匹配。
解決方案是 CloudFront,它可以位於您的 S3 前面並為其處理正確的 SSL 證書:
- 在*Amazon Certificate Manager**中為static.mysite.com*創建一個免費的 SSL 證書(或將您的第 3 方頒發的 SSL 證書上傳到 ACM)。
- 設置*CloudFront 分配*,將 SSL 證書附加到它
- 配置 CloudFront 分配以使用您的 S3 儲存桶作為源
- 在您的 DNS 提供商處配置static.mysite.com CNAME 以指向 CF 分發名稱,例如d123456abcdef.cloudfront.net
- 有了你想要的URL https://static.mypage.com/pics/one.jpg應該終於可以工作了。
另請查看將流量路由到託管在 Amazon S3 儲存桶中的網站。
希望有幫助:)