那麼,CloudFront究竟在做什麼呢?它只驗證證書是否由可信CA頒發?
SSL證書有兩個目的:
- 提供用於初始化加密
- 認證,在
www.example.com
服務器確實授權服務www.example.com
事實上的公共密鑰。
SSL證書形成一個信任鏈回到受信任的根證書,每個證書都由更高級別的信任簽名。 CloudFront正在驗證證書是否爲真實由可追溯至已知受信任根的問題簽署。
而且,CloudFront正在驗證證書對於有問題的主機是否有效。
當CloudFront使用HTTPS與您的源進行通信時,CloudFront會驗證證書是否由受信任的證書頒發機構頒發。 CloudFront支持與Mozilla相同的認證機構;有關當前列表,請參閱Mozilla Included CA Certificate List。您不能在CloudFront和您的原始設備之間使用自簽名證書進行HTTPS通信。
重要
如果原始服務器返回一個過期的證書,證書無效,或自簽名證書,或者如果原始服務器返回錯誤的順序證書鏈,CloudFront的下降TCP連接,返回HTTP狀態代碼502(錯誤網關),並將X-Cache標頭設置爲來自cloudfront的錯誤。
另外,如果包含中間證書的完整證書鏈不存在,CloudFront將丟棄TCP連接。
一個證書中的域名必須符合下列值中的一個或兩個:
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-cloudfront-to-custom-origin.html
有什麼意義?
這就是SSL(TLS)的工作原理。瀏覽器在使用SSL連接到服務器時會執行相同的操作 - 它會驗證證書是否有效,並與您連接到的認爲是的站點相匹配。
如果沒有此限制,您將禁用並丟棄由SSL提供的兩個組件之一 - 服務器的身份驗證。
當服務器實際上是AWS上的一個EC2實例時,使用HTTPS連接到原點有什麼意義?
的一點是,是的,如果原始服務器在EC2上,這是一個更安全的環境不是通過公共互聯網,因爲交通是唯一的亞馬遜網絡上......但正對亞馬遜網絡不提供完全的免於妥協或攔截。這是不太可能的,但在技術上不可能。這屬於「最佳實踐」領域。這裏使用SSL意味着攔截的流量 - 如果它發生的話 - 對於進行攔截的惡意實體仍然沒有用處。
但是,CloudFront與EC2中的而不是的原始服務器完美協作,因此從CloudFront到原點的流量將穿越公共Internet。
沒有規則要求您在原始服務器上使用SSL,即使CloudFront證明了它與瀏覽器之間的HTTPS連接。從技術角度來說,可以配置「僅用於HTTP的Origin協議策略...」,但同樣,這不是最佳實踐。
_CloudFront正在驗證證書對於有問題的主機是否有效_ - 從哪裏獲取主機? 「主機」標題? (我使用IP地址將CloudFront指向我的出處) – Defozo