HTTP 協(xié)議傳輸?shù)臄?shù)據(jù)都是不加密的狮荔。想象一下,你訪問(wèn)某個(gè)網(wǎng)站介粘,當(dāng)數(shù)據(jù)經(jīng)過(guò)路由器殖氏、寬帶網(wǎng)關(guān),以及某墻的時(shí)候都是完全可見(jiàn)的姻采,是不是有種裸奔的感覺(jué)雅采?為網(wǎng)站啟用 HTTPS 支持可以說(shuō)是大勢(shì)所趨,在某國(guó)日益倒車(chē)的互聯(lián)網(wǎng)環(huán)境下更是如此慨亲。
第零步是選擇一個(gè)靠譜的 CA(Certificate Authority婚瓜,數(shù)字證書(shū)認(rèn)證中心)。你以為所有的認(rèn)證中心都是中立可信的嗎刑棵?并不是的巴刻,比如此前頻頻爆出丑聞的 WoSign 和 StarCom,這兩家認(rèn)證中心已經(jīng)被 Google Chrome 等多款瀏覽器默認(rèn)設(shè)置為不信任铐望。當(dāng)然你更不能自己做裁判冈涧,像 12306.cn 一樣給自己頒發(fā)證書(shū)。這里推薦 Let's Encrypt正蛙,這家成立于 2016 年督弓、由互聯(lián)網(wǎng)安全研究小組(ISRG)主導(dǎo)的機(jī)構(gòu)致力于向用戶(hù)提供免費(fèi)的、自動(dòng)化管理的證書(shū)方案乒验。
Let's Encrypt 允許使用實(shí)現(xiàn)了 ACME 協(xié)議的客戶(hù)端完成諸如證書(shū)獲取愚隧、認(rèn)證、簽名锻全、安裝以及續(xù)簽等步驟狂塘。官方推薦使用 Certbot。下面鳄厌,我們以 Ubuntu 16.04 & Nginx 為例荞胡,說(shuō)明如何使用 Certbot 快速地為網(wǎng)站啟用 HTTPS 支持。
第一步:安裝 Certbot
在系統(tǒng)中添加 Certbot 的 PPA了嚎,然后使用 apt
安裝 Certbot泪漂。
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
第二步:安裝證書(shū)
運(yùn)行下面的命令獲取證書(shū)廊营,這個(gè)命令同時(shí)會(huì)為你更改 Nginx 配置文件(并且重載 Nginx):
$ sudo certbot --nginx
如果你想自己修改 Nginx 配置文件,可以使用 certonly
選項(xiàng):
$ sudo certbot --nginx certonly
第三步:自動(dòng)續(xù)簽
Let's Encrypt 簽發(fā)的證書(shū)萝勤,有效期是 90 天露筒。你可以使用下面的命令對(duì)證書(shū)進(jìn)行續(xù)簽:
$ sudo certbot renew --dry-run
當(dāng)然,創(chuàng)建一個(gè) Cron Job 周期性地自動(dòng)續(xù)簽是一個(gè)更省事的方案敌卓。
現(xiàn)在慎式,在瀏覽器中打開(kāi)你的網(wǎng)站,你就能從地址欄看到令人安心的綠色小鎖了趟径。除了本文介紹的方法瘪吏,acme.sh 這個(gè)項(xiàng)目也提供了一種非常易用的方案。想要了解更多舵抹,請(qǐng)參考這篇文章肪虎。