無法讓 aws cloudfront / route53 解析我的域名
我已經使用 SSL 設置了一個雲端分發,指向一個公共的 s3 儲存桶並設置為靜態網站。我選擇了將 HTTP 重定向到 HTTPS 的選項,因為我想強制使用 HTTPS。
我將 route53 設置為具有別名類型的 A 和 AAAA 記錄,使用
example.com
並將其解析為雲端域名。當我這樣做時,“託管區域 ID”自動出現,表明亞馬遜辨識雲端域。我可以在瀏覽器中訪問云端端點並查看我的網站,但是,如果我直接訪問
example.com
(沒有 HTTPS,沒有 www),那麼我會看到:403 錯誤 無法滿足請求。錯誤的請求。由雲端(CloudFront)生成請求ID:xDCmX7k8EFGGLAfjgpJcJ7AD-_mRfdBseTsqEP2aXfSWQ5S2mTMwuA==
但是,如果我嘗試
https://example.com
,那麼我只會得到一個空白頁。我嘗試將兩者都
example.com
放在www.example.com
cloudfront cnames 欄位中,但這似乎沒有任何作用,所以我目前已將它們刪除。
您需要同時擁有
example.com
和www.example.com
在 CloudFront CNAME 設置中。但是,添加這些之後,您在測試之前等待了多長時間?進行更改後,CloudFront 需要重新部署到所有邊緣站點,這有時可能需要一段時間。您可以在分發列表中查看狀態 - 任何顯示“正在部署”的內容,您都需要等待 - 通常大約需要 15 分鐘,但我發現有時需要長達一個小時。
部署更改後,您還需要清除瀏覽器記憶體(可能在隱身視窗中嘗試)以確保您從伺服器請求最新的。301 重定向(這是 CloudFront 用來從 HTTP 重定向到 HTTPS 的方法)被認為是“永久的”,您的瀏覽器可能已經記憶體了它,並且不會再次向 CloudFront 請求它。
確定測試時間的最簡單方法通常是使用
curl
:curl --head --location http://example.com curl --head --location http://www.example.com curl --head --location https://example.com curl --head --location https://www.example.com
對於其中的每一個,您應該得到響應,例如從 http 到 https 地址的 301 重定向,然後在 https 地址處獲得 200 OK。
理想情況下..您可能實際上希望為 www(或裸域,如果 www 是您的主要域)設置另一個 CloudFront 分配,指向一個帶有簡單重定向的儲存桶,以確保每個人最終都到達該地址你比較喜歡。
但要記住的主要事情是……等等,在對您的發行版進行任何更改之後。有超過 100 個邊緣站點需要部署。