發(fā)表日期:2018-10 文章編輯:小燈 瀏覽次數(shù):2778
HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP),用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。
HTTPS:全稱:Hyper Text Transfer Protocol over Secure Socket Layer,則是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。
HTTPS協(xié)議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩?;另一種就是確認(rèn)網(wǎng)站的真實性。
一般情況下,要使用HTTPS協(xié)議,需要有一張被信任的 CA ( Certificate Authority )也就是證書授權(quán)中心頒發(fā)的 SSL 安全證書,并且將它部署到你的網(wǎng)站服務(wù)器上。一旦部署成功后,當(dāng)用戶訪問你的網(wǎng)站時,瀏覽器會在顯示的網(wǎng)址前加一把小鎖,表明這個網(wǎng)站是安全的,當(dāng)然同時你也會看到網(wǎng)址前的前綴變成了 https ,不再是 http 了
理論上,我們自己也可以手動制作一個 SSL 安全證書,但是我們自己簽發(fā)的安全證書瀏覽器信任,所以我們需要被信任的證書授權(quán)中心( CA )簽發(fā)的安全證書。而一般的 SSL 安全證書簽發(fā)服務(wù)都需要付費,且價格昂貴,不過為了加快推廣 https 的普及, EEF 電子前哨基金會、 Mozilla 基金會和美國密歇根大學(xué)成立了一個公益組織叫 ISRG ( Internet Security Research Group ),這個組織從 2015 年開始推出了 Let’s Encrypt 免費證書。這個免費證書不僅免費,而且還相當(dāng)好用,所以我們就可以利用 Let’s Encrypt 提供的免費證書部署 https 了。
Let’s Encrypt提供了免費的證書申請服務(wù),同時也提供了官方客戶端 Certbot,打開首頁,就可以得到官方的安裝教程。官方教程給出了四種常用服務(wù)器和不同的Linux、Unix的安裝使用方案,可以說是十分的貼心了。
下面我將會介紹一個通用的安裝方案:
wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto
生成證書前需要關(guān)閉服務(wù)器
service nginx stop
./certbot-auto certonly
根據(jù)提示,輸入相關(guān)資料后,如打印類似以下內(nèi)容,即可在/etc/letsencrypt/archive目錄下得到證書文件。
如果不想一步一步走,也可以直接使用以下命令直接生成。注意xxx需要替換為自己的東西。
./certbot-auto certonly --standalone --email xxx@xxx.com --agree-tos -d xxx.com -d www.xxx.com
Nginx中配置SSL證書的配置文件參考如下:
server { listen443 ssl; server_name xxx.com; location / { # .... } ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem; } server { listen80; server_name xxx.com;location / { # ... } #如果需要把http強制轉(zhuǎn)換為https,需要配置以下內(nèi)容 if ($host = xxx.com) { return 301 https://$host$request_uri; }}
配置完成后,啟動Nginx,瀏覽器中查看效果。
service nginx start