最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

010. 從HTTP 到 HTTPS:SSL 證書的原理和獲取方法

2023-03-14 20:08 作者:姚千山  | 我要投稿

什么是 HTTPS

HTTPS(超文本傳輸安全協(xié)議)是?HTTP?協(xié)議的加密版本。它使用?SSL?或?TLS?協(xié)議來加密客戶端和服務(wù)器之間所有的通信。安全連接允許客戶端與服務(wù)器安全地交換敏感數(shù)據(jù),例如網(wǎng)上銀行或者在線商城等涉及金錢的操作。

為什么需要 HTTPS

在互聯(lián)網(wǎng)高速發(fā)展的今天,基于 HTTPS 的網(wǎng)站早已普及。主流瀏覽器,如 Chrome、Edge 等更是不推薦不安全的 HTTP,訪問這類網(wǎng)站將會被標(biāo)注為不安全。而各類主流網(wǎng)站紛紛拋棄 HTTP ,投入 HTTPS 的懷抱。一個必須被接受的事實是,HTTP 被徹底淘汰的這一天的到來將不會太遠(yuǎn)。

從 HTTPS 的概念中,我們知道其最大的特點是:安全。當(dāng)然,這種安全是以性能的降低為代價的。顯然,對明文數(shù)據(jù)進(jìn)行一次額外的加解密操作會使得傳輸數(shù)據(jù)變慢,客戶端與服務(wù)端會消耗更多的資源。從這方面來看,升級為 HTTPS 是一次徹底的反向優(yōu)化,尤其是在局域網(wǎng)等不需要加密的場景。

事實上,有些情況下,HTTPS 甚至可以比 HTTP 更快。這是因為 HTTPS 可以利用一些新的技術(shù)來優(yōu)化性能,例如 HTTP2、HTTP3、TLS 1.3等。這些技術(shù)可以減少握手次數(shù)、降低延遲、提高并發(fā)度等。同時,我們也要考慮到隨著技術(shù)的進(jìn)步,HTTP 更新?lián)Q代是一種必然,HTTP4 乃至 HTTP5 等技術(shù)并不遙遠(yuǎn)。這些新技術(shù)可能是完全基于 HTTPS 的,不會再支持明文傳輸?shù)?HTTP。即便是 HTTP2 版本,不使用 SSL 證書進(jìn)行加密也是不推薦的。

因此,將 HTTP 升級到 HTTPS,并不一定會影響網(wǎng)站的速度。相反,它可能會帶來更多的好處,如安全性、信任度、新技術(shù)等。

HTTPS 原理

我們知道 HTTP 是基于 TCP/IP 的應(yīng)用層協(xié)議,HTTP 報文直接通過 TCP 傳輸,極易受到中間人攻擊。如果有人截獲并篡改了數(shù)據(jù)包,客戶端與服務(wù)端是完全無法察覺的,這就帶來了巨大的安全隱患。

如何保證數(shù)據(jù)安全,加密這種手段是很容易被想到的。在 HTTPS 中,使用的正是非對稱加密與對稱加密相結(jié)合的方式。

服務(wù)端擁有非對稱加密的公鑰與私鑰(即 SSL 證書),當(dāng)客戶端完成 TCP 握手后,并不像 HTTP 那樣直接發(fā)送數(shù)據(jù),而是進(jìn)行 SSL/TLS(一般是 TLS)握手階段。服務(wù)端返回公鑰,客戶端校驗該公鑰證書是否為權(quán)威機構(gòu)(CA 機構(gòu))頒發(fā),并通過相同的哈希算法判斷該證書信息是否有效。

校驗成功后生成第一隨機數(shù),發(fā)給服務(wù)端。服務(wù)端響應(yīng)的返回第二隨機數(shù),當(dāng)客戶端收到后即生成第三隨機數(shù),用公鑰將其加密就得到了一密鑰(稱為預(yù)主密鑰)。由于是非對稱加密,這一預(yù)主密鑰只有服務(wù)端才能通過私鑰解密,得到第三隨機數(shù)。這樣一來,有且僅有雙方才能都得到這三個隨機數(shù),利用相同的算法即可得到真正的密鑰(即主密鑰)。主密鑰就是后續(xù)數(shù)據(jù)傳輸階段進(jìn)行對稱加解密的唯一密鑰,保證傳輸數(shù)據(jù)的安全。

HTTPS 對應(yīng)的通信時序圖

通過上述過程我們知道了 HTTPS 的原理,不難發(fā)現(xiàn)公私鑰(SSL 證書)的重要性。缺少了證書, HTTPS 就無法實現(xiàn)。

SSL 證書獲取

1. 自簽名證書

個人簽發(fā)的證書,不受權(quán)威機構(gòu)認(rèn)可,一般用于個人學(xué)習(xí)研究。

使用 Python 的 pyOpenSSL 庫:

?詳細(xì)代碼,僅需修改頒發(fā)對象及拓展域名及 IP 即可。

當(dāng)我們使用自簽名證書時,往往會提示如下錯誤,我們可以選擇忽略該錯誤也并不影響使用,當(dāng)看著難免不美觀。可以自行在客戶端將證書添加為信任證書。

證書無效

一般情況下,也可將自簽名證書配合修改 Hosts 文件使用。

2. CA 機構(gòu)頒發(fā)證書

現(xiàn)在絕大多數(shù) CA 機構(gòu)頒發(fā)證書是收費的,并且價格并不便宜。如果需要能夠用于生產(chǎn)部署的免費 CA 證書,推薦 Let's Encrypt ,只要擁有域名及服務(wù)器所有權(quán)即可免費申請。

首先需在服務(wù)器安裝好 Python,使用?Let's Encrypt 官方 Python 庫 certbot 即可。

必須先關(guān)閉 Web 服務(wù)器,再運行該 Python 文件,最終證書保存路徑可在日志中查看。證書有效期為三個月,可部署自動化腳本申請。

延伸閱讀

  1. Welcome to the Certbot documentation:https://eff-certbot.readthedocs.io/en/stable/index.html

  2. Let's Encrypt - 免費的SSL/TLS證書:https://letsencrypt.org/zh-cn/docs/

  3. SSL 證書標(biāo)準(zhǔn)拓展:https://www.openssl.org/docs/manmaster/man5/x509v3_config.html#STANDARD-EXTENSIONS

  4. ?pyOpenSSL 文檔:https://www.pyopenssl.org/en/latest/index.html


010. 從HTTP 到 HTTPS:SSL 證書的原理和獲取方法的評論 (共 條)

分享到微博請遵守國家法律
冕宁县| 土默特右旗| 中阳县| 黄平县| 万源市| 岳阳县| 洮南市| 环江| 抚松县| 广西| 阜阳市| 鄱阳县| 右玉县| 浪卡子县| 桂林市| 崇仁县| 陵川县| 广丰县| 遂溪县| 靖江市| 崇信县| 闽清县| 庄浪县| 读书| 鱼台县| 汉沽区| 崇阳县| 西青区| 五台县| 鄄城县| 策勒县| 铁力市| 成都市| 平泉县| 肥西县| 咸宁市| 且末县| 盐池县| 东丽区| 富民县| 塔城市|