1. 程式人生 > >Https優化方案(減少通訊RT篇--TLS False Start)

Https優化方案(減少通訊RT篇--TLS False Start)

https通訊示意圖

在這裡插入圖片描述

開啟TLS False Start後的https通訊是示意圖

在這裡插入圖片描述

可以看出,在TLS協商第二階段,瀏覽器傳送ChangeCipherSpec和Finished後,立即傳送加密的應用層資料,而無需等待伺服器端的確認。


具體可以通過抓包來看一下

未開啟TLS False Start
在這裡插入圖片描述
可以看出,瀏覽器端在傳送ChangeCipherSpec和Finished後,處於等待狀態,直到伺服器的確認包到達,才進行加密的應用資料傳輸。

開啟TLS False Start
在這裡插入圖片描述
瀏覽器在傳送ChangeCipherSpec和Finished後,並沒有等待伺服器端的確認就立即傳送了加密應用資料。這樣就省去了一個RT。


具體操作(nginx)

    ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!aNULL:!MD5;
  	ssl_prefer_server_ciphers on;

簡而言之就是告訴Nginx在TLS握手時啟用伺服器演算法優先,由伺服器選擇適配演算法而不是客戶端
想進一步瞭解TLS可以看這篇文件 https://wiki.mozilla.org/Security/Server_Side_TLS