2017-07-13 23 views
0

我需要澄清一下CloudFront如何通過HTTPS連接到原始服務器。CloudFront在連接到原始服務器時如何驗證證書?

從AWS網站:

當CloudFront的使用HTTPS與產地溝通,CloudFront的驗證證書是由受信任的證書頒發機構頒發。 CloudFront支持與Mozilla相同的認證機構;有關當前列表,請參閱Mozilla包含的CA證書列表。您不能在CloudFront和您的原始設備之間使用自簽名證書進行HTTPS通信。

參考:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-cloudfront-to-custom-origin.html

我使用讓我們加密頒發的證書。當我的原始服務器連接到我的域時,獲得證書。但是,CloudFront正通過IP地址連接到我的出處。那麼,CloudFront在這裏做什麼?它只驗證證書是否由可信CA頒發?重點是什麼?順便說一下,當服務器實際上是AWS上的EC2實例時,使用HTTPS連接到原點有什麼意義?

回答

1

那麼,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連接。

一個證書中的域名必須符合下列值中的一個或兩個:

  • 您爲原產地域名指定在分發適用的原產地的價值。

  • 如果您將CloudFront配置爲將Host標頭轉發到您的原始標頭Host的標頭值。有關將標題轉發到源的更多信息,請參閱配置CloudFront以基於請求標頭緩存對象。

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協議策略...」,但同樣,這不是最佳實踐。

+0

_CloudFront正在驗證證書對於有問題的主機是否有效_ - 從哪裏獲取主機? 「主機」標題? (我使用IP地址將CloudFront指向我的出處) – Defozo