什麼是HTTPS?
HTTP協定以明文方式發送内容,不提供任何方式的資料加密。HTTPS協定是以安全為目标的HTTP通道,簡單來說,HTTPS是HTTP的安全版,即将HTTP用SSL/TLS協定進行封裝,HTTPS的安全基礎是SSL/TLS協定。HTTPS提供了身份驗證與加密通訊方法,被廣泛用于網際網路上安全敏感的通訊,例如交易支付。
根據2017年EFF(Electronic Frontier Foundation)釋出的報告,目前全球已有超過一半的網頁端流量采用了加密的HTTPS進行傳輸。更多HTTPS的資訊請參考阿裡雲CDN官方幫助文檔
什麼是HTTPS加速。
CDN如何HTTPS加速
使用了CDN以後,域名解析到了CDN,是以必須要在CDN側配置HTTPS證書。如果CDN上沒有配置HTTPS證書,則CDN隻支援HTTP通路;如果CDN上配置了HTTPS證書,則CDN支援HTTP和HTTPS通路。具體配置請參考幫助文檔“
配置HTTPS證書”。
源站已經配置了HTTPS,CDN上是否還需要配置
HTTPS是用戶端和服務端的互動,沒有用CDN前,是用戶端直接和源站互動,是以源站需要配置HTTPS。使用CDN以後,是用戶端和CDN互動,是以如果需要HTTPS通路CDN,則CDN上必須要配置HTTPS證書。源站配置了HTTPS證書隻是支援CDN以HTTPS回源到源站。
為什麼配置了HTTPS,用戶端還是HTTP通路的
用戶端是HTTP通路還是HTTPS通路完全是用戶端的行為,如果希望用戶端強制用HTTPS通路,可以在CDN上開啟
強制HTTPS跳轉申請CDN免費HTTPS證書失敗
在阿裡雲CDN控制台中申請免費HTTPS證書時,存在一些限制。您可以參考“
在CDN的HTTPS設定中申請免費證書失敗”的文檔去排查和解決。
CDN配置HTTPS以後還是無法通路
(1)如果是購買證書以後自定義上傳的情況,需要特别注意SSL證書根據其适用範圍可以分為:通配符域名、單個域名和多個域名。根據其名稱即可檢視購買的證書分别适用于主域名下某個級别的全部子域名、單個域名或者多個域名。使用者是需要保證購買的證書必須适用于加速域名後續才可以添加在CDN中生效。如下圖所示的即是添加的SSL證書(适用于www域名)與CDN加速域名(video的子域名)是不相比對的,是以會抛出NET::ERR_CERT_COMMON_NAME_INVALID的錯誤。

(2)CA機構提供的證書為了相容性可能會提供多種形式的證書,CDN支援的證書僅有PEM格式,并且私鑰需要RSA格式。如果客戶擷取得到的是其他格式的證書是需要轉換後然後送出到CDN服務中的,常見格式切換格式請參考:CDN
證書格式說明,而其中的私鑰檔案如果是-----BEGIN PRIVATE KEY-----, -----END PRIVATE KEY-----樣式的話是需要通過如下指令轉換成RSA格式:
openssl rsa -in old_server_key.pem -out new_server_key.pem
(3)CDN是不支援設定密碼的私鑰。如圖3所示即是經過加密的私鑰,這類私鑰檔案是需要經過解密後才可以正常使用,是以CDN是無法正常使用的。
(4)證書鍊需要補全中間證書。對于中級CA機構提供的證書,那麼拿到的證書将包括多份證書,而CDN需要添加的是包括中間證書的完整證書鍊,拼接規則為:伺服器證書放第一份,中間證書放第二份,中間不要有空行。另外有一些中間證書CA機構提供了不同的伺服器使用的證書,由于CDN是基于Tengine提供服務的,是以使用者是需要使用Nginx對應的證書到視訊中心的。
(5)CDN的HTTPS技術是基于SNI技術實作的。SNI技術主要是用來在同一台伺服器上配置多個證書的需求,而SNI是需要用戶端發送請求的時候帶有SNI的資訊以辨別是哪個域名的SSL請求,是以SNI技術對用戶端有一定的要求,部分低版本系統中的低版本浏覽器不滿足該要求。SNI技術對于用戶端的限制詳細請參考:
SNI對用戶端浏覽器限制為什麼網站開啟HTTPS以後顯示不全
打開浏覽器開發者模式,切換到console頁面,如果看到Mixed Content錯誤,則說明是浏覽器安全限制導緻的。浏覽器要求Https的頁面裡隻能加載Https的位址,不能加載Http的資源。如果您的Https的頁面裡加載了很多http的資源,這些資源加載不出來的,是以會引起網站顯示異常,這種情況需要網站技術人員把htm代碼裡加載的資源位址都改成https的。