HTTPS是以安全為目標的HTTP通道,為CDN的網絡內容傳輸提供了更好的保障。客戶端在極速訪問內容的同時,可以更安全有效地瀏覽網站內容。本文為您介紹關于HTTPS的常見問題。
什么是HTTPS?
超文本傳輸安全協議HTTPS(Hypertext Transfer Protocol Secure),是一種在HTTP協議基礎上進行傳輸加密的安全協議,能夠有效保障數據傳輸的安全。HTTP協議以明文方式發送內容,不提供任何方式的數據加密。HTTPS協議是以安全為目標的HTTP通道,簡單來說,HTTPS是HTTP的安全版,即將HTTP用SSL或TLS協議進行封裝,HTTPS的安全基礎是SSL或TLS協議。HTTPS提供了身份驗證與加密通訊方法,被廣泛用于萬維網上安全敏感的通訊,例如交易支付。當您在阿里云CDN上配置HTTPS時,需要提供域名對應的證書,并將證書部署在全網CDN節點,實現全網數據加密傳輸。
常見的HTTP攻擊類型有哪些?
HTTPS只是安全訪問的其中一環,如需全面保證網絡安全,則還需要接入WAF、DDoS等防御能力,以下為常見的HTTP攻擊類型:
SQL注入:利用現有應用程序,可以將惡意的SQL命令注入到后臺數據庫引擎中并執行。也可以通過在Web表單中輸入惡意SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。
跨站腳本攻擊:跨站腳本攻擊XSS(Cross-site scripting)是最常見和基本的攻擊Web網站的方法。攻擊者在網頁上發布包含攻擊性代碼的數據。當瀏覽者看到此網頁時,特定的腳本就會以瀏覽者用戶的身份和權限來執行。通過XSS可以較容易地修改用戶數據、竊取用戶信息。
跨站請求偽造攻擊:跨站請求偽造CSRF(Cross-site request forgery)是另一種常見的攻擊。攻擊者通過各種方法偽造一個請求,模仿用戶提交表單的行為,從而達到修改用戶的數據或者執行特定任務的目的。為了假冒用戶的身份,CSRF攻擊和XSS攻擊通常會相互配合,但也可以通過其它手段,例如誘使用戶單擊一個包含攻擊的鏈接。
Http Headers攻擊:使用瀏覽器查看任何Web網站,無論您的Web網站采用何種技術和框架,都用到了HTTP協議。HTTP協議在Response header和content之間有一個空行,即兩組CRLF(0x0D 0A)字符,這個空行標志著headers的結束和content的開始,攻擊者可以利用這一點。只要攻擊者有辦法將任意字符注入到Headers中,這種攻擊就可以發生。
重定向攻擊:一種常用的攻擊手段是“釣魚”。釣魚攻擊者通常會發送給受害者一個合法鏈接,當您訪問鏈接時,會被導向一個非法網站,從而達到騙取用戶信任、竊取用戶資料的目的。為防止這種行為,我們必須對所有的重定向操作進行審核,以避免重定向到一個危險的地方。常見解決方案是白名單,將合法的要重定向的URL添加到白名單中,非白名單上的域名重定向時拒絕。第二種解決方案是重定向token,在合法的URL上加上token,重定向時進行驗證。
站點只有登錄才需要HTTPS嗎?
不是。您需要從以下幾個方面來分析:
從安全方面來看:一些頁面為HTTP,一些頁面為HTTPS,當通過HTTP或不安全的CDN服務加載其他資源(例如JS或CSS文件)時,網站也存在用戶信息暴露的風險,而全站HTTPS是防止這種風險最簡單的方法。
從性能方面來看:當網站存在HTTPS和HTTP兩種協議時,跳轉需對服務器進行大量的重定向,當這些重定向被觸發時會減慢頁面的加載速度。
從全網來看:瀏覽器對HTTPS的支持會更友好,搜索引擎也對HTTPS的收錄有更好的支持。
配置HTTPS時,需要配置哪些證書?
如果您僅需要加密客戶端至CDN節點的請求,在CDN上配置HTTPS證書即可。
如果您需要配置全鏈路HTTPS訪問,需要在CDN上配置HTTPS證書并在源站上配置HTTPS證書,詳情請參見:什么是HTTPS加速。
開啟CDN的HTTPS加速后會額外收費嗎?
會額外收費。開啟CDN的HTTPS加速,實際開啟的是客戶端到CDN邊緣節點這段鏈路的HTTPS。因為SSL協議的握手和內容解密都需要計算,所以會增加CDN服務器的CPU資源損耗,但不會增加您源站服務器的資源損耗,因為CDN邊緣節點到您源站這段鏈路使用的仍然是HTTP協議,不會額外增加您源站的損耗。
如果您購買不同類型的證書,則需要額外付費。您也可以登錄阿里云數字證書管理服務控制臺申請個人測試證書(免費版)。個人測試證書(免費版)等級為DV,每個加速域名可以申請一個個人測試證書(免費版),證書有效期為3個月,到期后可以免費自動續簽。設置好HTTPS證書后,該域名在CDN上的所有HTTPS請求數會收費。靜態HTTPS請求數收費請參考HTTPS請求數計費。
IP黑白名單、User-Agent 黑名單、請求返回403/404時,HTTPS請求數是否會被計費?
HTTPS請求數會被計費,當命中某些策略規則,返回403和404的狀態碼時,該請求是被正確響應了的,所以會被記一次HTTPS請求數;該條請求由于不攜帶任何的資源內容,所以請求的流量會非常小,計費流量也極小。
源站已經配置了HTTPS,CDN上還需要配置HTTPS嗎?
HTTPS是客戶端和服務端的交互,未使用CDN之前,是客戶端直接和源站交互,因此源站需要配置HTTPS。使用CDN之后,是客戶端和CDN交互,如果您需要以HTTPS的形式訪問CDN,則必須在CDN上配置HTTPS證書。在CDN上配置HTTPS證書的方法,請參見配置HTTPS證書。
開啟HTTPS加速會消耗更多資源或降低訪問速度嗎?
當源站開啟HTTPS時,相比于源站通過HTTP訪問在計算資源的消耗上會有所增加,主要來自于HTTPS握手過程中對非對稱加解密時的消耗,尤其在高并發情況下資源消耗增長明顯。對稱加解密消耗與HTTP基本一致,因此需要增加Session復用率,但直接通過HTTPS訪問源站相比于直接通過HTTP訪問源站耗時更長。
通過全站加速進行全鏈路HTTPS訪問時,SSL握手的平均時間會有所縮短,在高并發情況下,對于源站Session復用率會有明顯的提高,源站資源消耗會有所降低。
對于靜態內容:通過邊緣分發的方式,在增加握手時間消耗的同時,減少了傳輸時間的消耗,因此整體訪問上會有所減少,且靜態資源無需回源,減少了源站的交互,可以降低源站的資源消耗。
對于動態內容:在路徑選擇上比通過傳統公網訪問更加可控且路徑最優,動態請求必須回源,通過全站加速的網絡回源,可以增加Session復用率,整體傳輸速度會有所提升。由于動態請求必須回源,因此非對稱加解密必不可少,源站的資源消耗會有所增加。但通過全站加速回源形成了全鏈路HTTPS訪問的方式,整體資源消耗上最優。
如何配置HTTPS證書?
您可以在CDN控制臺中配置HTTPS證書,具體操作請參見配置HTTPS證書。
上傳HTTPS證書,提示證書重復怎么辦?
當您上傳自定義上傳(證書+私鑰)類型的證書時,如果系統提示證書重復,您需要修改證書名稱后再重新上傳。
上傳第三方證書時,有多個.crt證書,如何上傳證書?
中級機構頒發的證書文件包含多份證書,您需要將服務器證書與中間證書拼接成一份完整的證書后再上傳。
通過文本編輯器打開所有*.PEM格式的證書文件,將服務器證書放在第一位,中間證書放在第二位,證書之間不能有空行。通常情況下,證書頒發機構頒發證書時會有對應的說明,請注意查閱規則說明。
拼接后的證書如下圖所示。
配置HTTPS證書時提示“證書格式不對”,如何進行轉換?
HTTPS配置僅支持PEM格式的證書,不同的證書頒發機構對證書內容的上傳有不同的要求,具體格式要求請參見證書格式說明。如果您的證書格式不是PEM,請完成格式轉換后再上傳,具體請參見證書格式轉換方式。
源站的HTTPS證書更新了,CDN上需要同步更新嗎?
不需要。源站的HTTPS證書更新后不會影響CDN上的HTTPS證書,當您在CDN上配置的HTTPS證書將要到期或者已經到期時,您才需要在CDN上更新HTTPS證書。具體操作請參見配置HTTPS證書。
配置HSTS時,打開包含子域名后,子域名上是否需要打開HSTS?
子域名上無需打開HSTS,打開“包含子域名”后,HSTS策略將在全部子域名中生效,請確保各子域名支持正常HTTPS訪問,否則子域名將無法訪問。
已經配置了HTTPS,為什么客戶端還是HTTP訪問?
客戶端是以HTTP訪問還是HTTPS訪問完全是客戶端的行為,如果您希望客戶端強制使用HTTPS訪問,可以在CDN上開啟強制HTTPS跳轉。具體操作請參見配置強制跳轉。