HTTPS安全超文本传输协议
一、什么是HTTPS
簡單的理解HTTPS就是使用SSL/TLS加密內容的、安全的HTTP協議
HTTPS = HTTP + SSL/TLS?
?
二、對稱加密與非對稱加密
對稱加密:加密和解密使用同一密鑰。簡單、快速、效率高
非對稱加密:加密解密密鑰不同,加密使用公鑰、解密使用私鑰,私鑰只有一人保管,公鑰可以有多人知道。安全性更強、但性能消耗比對稱加密大
SSL/TLS中同時使用了兩種加密方式,建立連接時使用非對稱加密傳輸產生密鑰的隨機數,鏈接建立后使用對稱加密傳輸通信內容
?
三、SSL/TLS握手過程
?
SSL/TLS的握手過程可以用上圖描述
1、客戶端向服務端發送Client Hello,產生隨機數random1,并說明客戶端支持的加密方式和協議版本
2、服務端收到客戶端請求后,返回Server Hello,同時攜帶隨機數random2與數字證書,其中公鑰在數字證書中一同發送,避免篡改。
3、客戶端收到服務端Server Hello后,驗證數字證書有效,使用生成隨機數random3,并使用公鑰加密,發送給服務端
4、服務端使用私鑰解密得到random3
5、客戶端和服務端根據約定好的加密方式,以及三個隨機數生成對話密鑰(session key),使用對話密鑰加密內容開始雙方會話
?
四、私鑰的作用
當使用CDN服務器的時候出于安全考慮不能把密鑰交給CDN服務器。
回顧整個握手鏈接過程,密鑰只在解密第三個隨機數時使用一次,因此,只需要把這個過程留在自己服務器就可以。CDN服務器把客戶端加密的隨機數發送給業務服務器,業務服務器將數據解密后傳回給CDN服務,其他流程均交給CDN服務
具體流程如下圖
?
五、HTTPS與HTTP不同點
| 對比內容 | HTTPS | HTTP |
| 是否付費 | 證書大多數需付費 | 無需 |
| 傳輸信息方式 | SSL/TLS協議加密信息,更安全 | 明文傳輸信息 |
| 端口 | 443 | 80 |
?
六、不使用HTTPS有那些風險
1、竊聽風險,第三方可能獲取通信內容
2、篡改風險,通信內容可能被第三方篡改
3、冒充風險,第三方可能被冒充他人參與通信
?
七、如何將HTTP站點轉成HTTPS站點
?HTTPS 升級指南:http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html
?
八、升級HTTPS后需要注意的問題
注意在HTTPS訪問的頁面,在請求資源時也需要使用HTTPS,如果使用HTTP在IE中會出現不安全項目彈框
可以使用協議相對URL解決這個問題
<img src="https://www.aaa.org/logo.png" alt="" /><img src="//www.aaa.org/logo.png" alt="" /><!--協議相對URL-->協議相對URL,如上面代碼第二行,即省略URL協議聲明的方式,使用了這種方式瀏覽器會使用頁面訪問相同的協議請求頁面資源
協議相對URL可以使用在HTML中的鏈接中,也可以使用在css中。但是在IE6/7中link或@import資源會被下載兩次,除此以外沒有其他問題
使用場景舉例
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"></script> <link rel="stylesheet" href="//www.ludou.org/style.css" /> <a href="//www.ludou.org/">Ludou</a> .logo { background: url(//www.ludou.org/logo.png); }?
參考
圖解SSL/TLS協議:http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
與HTTP有什么區別?HTTPS的七個誤解:https://www.admin5.com/article/20150523/600106.shtml
網站是否需要HTTPS加密:https://www.admin5.com/special/https/
?
轉載于:https://www.cnblogs.com/zs-note/p/9914067.html
總結
以上是生活随笔為你收集整理的HTTPS安全超文本传输协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在 Ubuntu 环境下实现插入鼠标自动
- 下一篇: python 2.6下 No modul