https使用的是對稱加密和非對稱加密結合的方式來進行的,步驟如下:
1、首先是ssl握手階段,客戶端傳送乙個攜帶ssl版本等資訊的資料到服務端,
2、服務端收到改資訊,根據對應的ssl版本,傳送非對稱加密的公鑰給客戶端,自己保留私鑰
3、客戶端拿到公鑰後,首先驗證公鑰的真實性,通過ca證書
4、驗證通過,或者手動忽略,那麼客戶端就會使用該公鑰加密另乙個金鑰——對稱加密的金鑰(客戶端隨機生成的字元長,位了提高效率,也為保障安全)
5、服務端收到該資料,首先用私鑰解密,獲取到對稱加密的金鑰。後續所有的資料,都只是用該對稱金鑰進行加密傳輸。
針對以上流程,在好長一段時間不能理解公鑰是如何保障資料的真實性的,因為既然是公鑰,那麼每個人都能獲得,那第三方豈不是可以破解從服務端傳送來的用私鑰加密的資訊了嗎,然後第三方用公鑰加密自己的資料,與伺服器進行互動,那還有啥意義?
後來突然想通了,因為https中非對稱加密只是加密對稱金鑰,也就是我在上述步驟3中,獲取到公鑰後(每個人都能獲取到),客戶端用這個公鑰加密隨機生成的對稱金鑰,然後傳遞給服務端。那麼這個用公鑰加密的對稱金鑰,也只能是由擁有服務端的私鑰才能解開,從而獲取到真正用來傳輸資料的對稱金鑰,即使第三方獲取到公鑰,也是無法解析出用來實際傳輸資料的對稱金鑰的,後續所有的資料,都會以此對稱金鑰來進行。所以歸根結底,就是保障對稱金鑰不被破解獲取。
Nginx下公升級https的方法步驟
購買證書 可以去阿里雲的雲盾證書服務購買 證書 在證書控制台 nginx 版本證書。到本地的壓縮檔案包解壓後包含 配置nginx 1 在 nginx 的安裝目錄下建立 cert 目錄,並且將 的全部檔案拷貝到 cert 目錄中,如果申請證書時是自己建立的csr檔案,請將對應的私鑰檔案放到 cert ...
apache24 https配置步驟
1 確認是否安裝ssl模組 是否有mod ssl.so檔案 2 生成證書和金鑰 linux下 步驟1 生成金鑰 命令 openssl genrsa 1024 out server.key 生成乙個私鑰 說明 這是用128位rsa演算法生成金鑰,得到server.key檔案 步驟2 生成證書請求檔案 ...
HTTPS 實現流程
https協議其實就是http over tsl,基礎的http通訊是明文的,有三大風險 資訊被竊聽,資訊被篡改,身份的冒充。tsl協議就是為防範這些風險存在的。tsl使用非對稱加密保護下的對稱加密在保證了通訊效率的同時防止竊聽,使用證書體系防止資訊篡改和身份冒認。注意 tsl協議握手階段的通訊是明...