2013-10-16 53 views
1

我有一個簡單的靜態網站,我通過Amazon的Cloudfront提供。沒有什麼重要的,所以它不需要HTTPS,此外我不想爲我的網站設置SSL證書的麻煩和成本,我很高興如果通過HTTPS發送請求服務不可用或任何其他錯誤消息將被認爲是合適的。相反,Cloudfront會嘗試使用自己的證書來提供HTTPS頁面,因此由於證書/域名稱不匹配而將網站標記爲「不可信」。通過HTTP服務Cloudfront頁面

是否有某種方法可以在Cloudfront中完全禁用HTTPS,或者在仍使用Cloudfront的情況下以某種其他方式優雅地回退到HTTP?

回答

1

可以單獨指定,每個CloudFront的起源,它是否應該使用產地協議策略設置使用HTTPHTTPS或僅HTTP

協議

CloudFront的轉發HTTP或HTTPS請求,以在以下基於 源服務器:

最終用戶發送給CloudFront的, HTTP或請求的協議HTTPS。

產地協議政策字段的CloudFront的 控制檯的值或者,如果你使用的CloudFront的API,在DistributionConfig複雜類型的 OriginProtocolPolicy元素。 在CloudFront控制檯中,選項爲HTTP Only匹配查看器

如果指定HTTP只有,CloudFront的轉發僅使用HTTP協議,無論該協議在 最終用戶請求所請求的來源 服務器。

來源:AWS CloudFront documentation

+1

感謝您的答覆,但這是CloudFront的和產地之間,而不是最終用戶和CloudFront的之間的請求。 – jgm

+0

對不起,我也應該提到CloudFront將始終通過HTTP和HTTPS使您的內容可用,但如果您的源只支持HTTP,那麼您可以簡單地將「Origin Protocol Policy」設置爲「僅限HTTP」,不用擔心關於HTTPS。您無法在CloudFront分配上完全禁用HTTPS(例如,不允許在該分配的主機名上的端口443上進行連接)。 – dcro

+0

我使用S3作爲原點,所以此選項不可用。無論如何,如果您聲明無法禁用或以其他方式拒絕嘗試的HTTPS連接,那麼看起來我運氣不佳。 – jgm

2

我有同樣的問題。

亞馬遜現在提供免費的SSL證書具有以下限制:

  • 只能在CloudFront的或ELB使用它們。
  • 瀏覽器沒有服務器名稱指示支持將不會正確呈現您的網站。

就我而言,我只是用它,即使我從不需要它。它比瀏覽器上的「不可信連接」要好得多。

我找不到任何機制來正常失敗或完全阻止HTTPS。

請參見:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#CNAMEsAndHTTPS