上一篇我們介紹了HTTP協議的三大缺點,那麼怎麼避免和解決HTTP的缺點呢,是時候請出我們的HTTPS了,那HTTPS和HTTP有什麼區別呢?
HTTP加上加密處理和認證以及完整性保護後即是HTTPS
如果在HTTP協議通訊過程中使用未經加密的明文,比如在Web頁面中輸入信用卡號,如果這條通訊線路遭到竊聽,那麼信用卡號就暴露了。
另外,對於HTTP來說,伺服器也好,客戶端也好,都是沒有辦法確認通訊方的。因為很有可能並不是和原來預想的通訊方在實際通訊。並且還需考慮到接收到的報文在通訊途中已經遭到篡改的可能性。
為了統一解決上述這些問題,需要在HTTP上再加入加密處理和認證等機制。我們把新增了加密及認證機制的HTTP稱之為HTTPS,如下圖所示:
經常會在Web的登入頁面和購物結算頁面等使用HTTPS通訊。使用HTTPS通訊時,不再使用http://,而是改用https://。另外,當瀏覽器訪問HTTPS通訊有效的Web網站時,瀏覽器的位址列內會出現一個帶鎖的標記。針對HTTPS的顯示方式會因瀏覽器的不同而有所改變,如下圖所示:
HTTPS是身披SSL外殼的HTTP
HTTPS並非是應用層的一種新的協議。只是HTTP通訊介面部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)協議代替而已。
通常,HTTP直接和TCP通訊。當使用SSL時,則演變成先和SSL通訊,再由SSL和TCP通訊了。簡而言之,所謂HTTPS,其實就是身披SSL協議這層外殼的HTTP。如下示意圖:
而採用SSL後,HTTP就擁有了HTTPS的加密,證書和完整性保護這些功能了。
SSL是獨立於HTTP的協議,所以不光是HTTP協議,其它執行在應用層的SMTP和Telnet等協議均可配合SSL協議使用。所以說SSL是當今世界應用最為廣泛的網路安全技術。
另外,針對SSL免費證書的不足和痛點,我開發並開源了一個平臺:華迅FreeCert平臺,支援免費的SSL證書,萬用字元證書的申請和託管,配合自動部署工具可以實現證書的自動化更新和部署,真正做到一次申請終身自動更新和自動部署,感興趣的同學可以試用一下!