http與https的區別和原理

HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,爲了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。
即:HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議-----HTTP的安全版。

概念
HTTP:是互聯網上應用最爲廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。

HTTPS:是以安全爲目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

HTTPS協議的主要作用可以分爲兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。

區別
主要如下:

1)、HTTP的url以 http:// 開頭;而HTTPS 的url以 https:// 開頭。
2)、HTTP無需證書;HTTPS 協議需要到CA機構申請SSL證書,需要一定費用。
3)、HTTP無需加密,信息是明文傳輸;HTTPS 則是具有安全性的SSL加密傳輸協議。
4)、HTTP 標準端口是80 ,而 HTTPS 的標準端口是443。
5)、在OSI 網絡模型中,HTTP工作於應用層,而HTTPS 工作在傳輸層。
6)、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

如圖

HTTPS的工作原理

如圖

網絡通信(握手過程),共分爲8個步驟:
在這裏插入圖片描述

STEP 1: 客戶端發起HTTPS 請求

STEP 2: 服務端的配置

STEP 3: 傳送證書

STEP 4: 客戶端解析證書

STEP 5: 傳送加密信息

STEP 6: 服務端解密信息

STEP 7: 傳輸加密後的信息

STEP 8: 客戶端解密信息

如何配置HTTPS

配置https最重要的是配置ssl證書,配置SSL證書可以參考 SSL證書部署指南:https://freessl.wosign.com/guide
這裏以自簽證書來演示

第一步:生成自簽證書

生成私鑰文件
sudo openssl genrsa -out server.key 2048

生成自簽證書文件
sudo openssl req -new -x509 -days 1826 -key server.key -out server.crt

第二步:修改apache配置

apache2.4
需開啓的模塊
LoadModule ssl_module libexec/apache2/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so

sudo vim httpd-ssl.conf

<VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName www.domain.com:443
    SSLEngine on
    SSLCertificateFile /usr/local/apache/conf/server.crt #添加證書文件
    SSLCertificateKeyFile /usr/local/apache/conf/server.key #添加私鑰文件
</VirtualHost>

檢測配置文件是否有錯誤
sudo apachectl configtest
重啓apache
sudo apachectl restart

HTTPS的優點:
  1、使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器;
  2、HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程中不被竊取、改變,確保數據的完整性。
  3、HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
  
  另外,SEO方面,谷歌曾在2014年8月份調整搜索引擎算法,並稱“比起同等HTTP網站,採用HTTPS加密的網站在搜索結果中的排名將會更高”。

缺點
技術方面:
1)HTTPS協議握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電;
2)HTTPS連接緩存不如HTTP高效,會增加數據開銷和功耗,甚至已有的安全措施也會因此而受到影響;
3)SSL 證書的信用鏈體系並不安全。特別是在某些國家可以控制 CA 根證書的情況下,中間人攻擊一樣可行。
成本方面:
  1)、SSL的專業證書需要購買,功能越強大的證書費用越高。個人網站、小網站可以選擇入門級免費證書;
  2)、SSL 證書通常需要綁定 固定IP,爲服務器增加固定IP會增加一定費用;
  3)、HTTPS 連接服務器端資源佔用高較高多,相同負載下會增加帶寬和服務器投入成本。

HTTPS作爲現行技術下最安全的解決方案,爲安全性而設置,相比HTTP要驗證的東西增多,速度肯定會有點慢,同時也會給服務器和客服端增加壓力,一般安全性要求不高的網站沒必要用HTTPS,然而涉及重要信息或者個人隱私則一定要使用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章