HTTP 協(xié)議是不加密傳輸數(shù)據(jù)的,也就是用戶跟你的網(wǎng)站之間傳遞數(shù)據(jù)有可能在途中被截獲茴厉,破解傳遞的真實(shí)內(nèi)容加勤,所以使用不加密的 HTTP 的網(wǎng)站是不太安全的现恼。所以悯恍, Google 的 Chrome 瀏覽器將在 2017 年 1 月開始谜悟,標(biāo)記使用不加密的 HTTP 協(xié)議的網(wǎng)站為 Not Secure,不安全槐臀。
現(xiàn)在你要做的就是讓網(wǎng)站支持 HTTPS,并不難氓仲,而且現(xiàn)在可以免費(fèi)做到水慨。要使用 HTTPS,你需要安全機(jī)構(gòu)頒發(fā)的安全證書敬扛,然后配置服務(wù)器晰洒,去使用這個(gè)證書。下面介紹一下在阿里云免費(fèi)申請(qǐng)安全證書啥箭,還有配置一般的 NGINX 服務(wù)器支持 HTTPS 的方法谍珊。
申請(qǐng)證書
- 登錄:阿里云控制臺(tái),產(chǎn)品與服務(wù)急侥,證書服務(wù)抬驴,購(gòu)買證書。
- 購(gòu)買:證書類型選擇 免費(fèi)型DV SSL缆巧,然后完成購(gòu)買布持。
- 補(bǔ)全:在 我的證書 控制臺(tái),找到購(gòu)買的證書陕悬,在操作欄里選擇 補(bǔ)全题暖。填寫證書相關(guān)信息。
- 域名驗(yàn)證:可以選擇 DNS,如果域名用了阿里云的 DNS 服務(wù)胧卤,再勾選一下 證書綁定的域名在 阿里云的云解析唯绍。
- 上傳:系統(tǒng)生成 CSR,點(diǎn)一下 創(chuàng)建枝誊。
- 提交審核况芒。
如果一切正常,10 分鐘左右叶撒,申請(qǐng)的證書就會(huì)審核通過绝骚。
2018-01-04:您也可以使用 Let's Encrypt 簽發(fā)的證書。
申請(qǐng)證書要注意的是驗(yàn)證域名祠够,就是你要驗(yàn)證你想綁定證書的域名是你自己的压汪,如果選擇使用 DNS 驗(yàn)證,你需要在域名的管理里古瓤,添加一條特定的 DNS 記錄止剖,這樣就可以證名這個(gè)域名是你自己的。使用了阿里云的云解析服務(wù)落君,這個(gè)步驟可以自動(dòng)完成穿香,會(huì)自動(dòng)為你添加一條 DNS 驗(yàn)證的記錄。
輸入證書要綁定的域名:
填寫個(gè)人信息:
在域名的管理里绎速,因?yàn)槲矣昧税⒗镌频?DNS 解析服務(wù)扔水,所以會(huì)自動(dòng)添加一條 CNAME 記錄,這條記錄就是驗(yàn)證域名所有權(quán)用的:
下載證書
在阿里云的證書管理那里朝氓,如果申請(qǐng)的證書審核通過魔市,你就可以下載了,點(diǎn)擊 下載赵哲,可以選擇不同的類型待德,可以選擇 NGINX,或 Apache 之類的服務(wù)器枫夺。根據(jù)自己網(wǎng)站的 Web 服務(wù)器類型将宪,下載對(duì)應(yīng)的證書。解壓以后橡庞,你會(huì)得到兩個(gè)文件一個(gè)是 *.key较坛,一個(gè)是 *.pem。
配置 NGINX 的 HTTPS
有了證書扒最,就可以去配置 Web 服務(wù)器去使用這個(gè)證書了丑勤,不同的 Web 服務(wù)器地配置方法都不太一樣。下面用 NGINX 服務(wù)器作為演示吧趣。我的域名是 ninghao.org法竞,出現(xiàn)這個(gè)文字的地方你可以根據(jù)自己的實(shí)際情況去替換一下耙厚。
下載并上傳證書
創(chuàng)建一個(gè)存儲(chǔ)證書的目錄:
sudo mkdir -p /etc/nginx/ssl/ninghao.org
把申請(qǐng)并下載下來的證書,上傳到上面創(chuàng)建的目錄的下面岔霸。我的證書的實(shí)際位置是:
/etc/nginx/ssl/ninghao.org/213985317020706.pem
/etc/nginx/ssl/ninghao.org/213985317020706.key
NGINX 配置文件
你的網(wǎng)站可以同時(shí)支持 HTTP 與 HTTPS薛躬,HTTP 默認(rèn)的端口號(hào)是 80,HTTPS 的默認(rèn)端口號(hào)是 443呆细。也就是如果你的網(wǎng)站要使用 HTTPS型宝,你需要配置網(wǎng)站服務(wù)器,讓它監(jiān)聽 443 端口絮爷,就是用戶使用 HTTPS 發(fā)出的請(qǐng)求趴酣。
下面是一個(gè)基本的監(jiān)聽 443 端口,使用了 SSL 證書的 NGINX 配置文件略水,創(chuàng)建一個(gè)配置文件:
touch /etc/nginx/ssl.ninghao.org.conf
把下面的代碼粘貼進(jìn)去:
server {
listen 443;
server_name ninghao.org;
ssl on;
root /mnt/www/ninghao.org;
index index.html;
ssl_certificate /etc/nginx/ssl/ninghao.org/213985317020706.pem;
ssl_certificate_key /etc/nginx/ssl/ninghao.org/213985317020706.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
}
上面的配置里价卤,ssl_certificate 與 ssl_certificate_key 這兩個(gè)指令指定使用了兩個(gè)文件劝萤,就是你下載的證書渊涝,解壓之后看到的那兩個(gè)文件,一個(gè)是 *.pem床嫌,一個(gè)是 *.key跨释。你要把這兩個(gè)文件上傳到服務(wù)器上的某個(gè)目錄的下面。
重新加載 NGINX 服務(wù):
>sudo service nginx reload
或:
sudo systemctl reload nginx
驗(yàn)證配置
在瀏覽器上輸入帶 https 的網(wǎng)站地址:https://ninghao.org
如果正確的配置了讓服務(wù)器使用 SSL 證書厌处,會(huì)在地址欄上顯示一個(gè)綠色的小鎖頭圖標(biāo)鳖谈。
點(diǎn)開那個(gè)小鎖頭,會(huì)顯示安全連接阔涉,再打開 詳細(xì)信息缆娃。
提示:
This page is secure (valid HTTPS).
打開 View certificate,會(huì)顯示證書的相關(guān)信息瑰排。
搜索引擎優(yōu)化
2015 年 5 月 25 日贯要,百度發(fā)公告聲明已全面支持 HTTPS 網(wǎng)頁(yè)的收錄,使用 HTTPS 的網(wǎng)頁(yè)被認(rèn)為更安全椭住,所以在排名上會(huì)被優(yōu)先崇渗。 百度還推薦使用 301 重定向,把網(wǎng)站的 HTTP 重定向到 HTTPS 京郑。
前幾天我讓寧皓網(wǎng)支持 HTTPS宅广,并觀察了搜索量,并未受到影響些举。所以跟狱,至少不用擔(dān)心換成 HTTPS 以后,搜索量會(huì)下降户魏。不過百度的反應(yīng)一般都比較慢兽肤,需要給他更長(zhǎng)的時(shí)間套腹。換成 HTTPS 的后兩天,谷歌已經(jīng)收錄了 HTTPS 版本的首頁(yè)资铡,但是百度至今還沒有反應(yīng)电禀。不管怎么樣,使用 HTTPS 都是遲早要做的事情笤休。
NGINX 配置使用 301 重定向:
server {
listen 80;
server_name ninghao.org;
return 301 https://$host$request_uri;
}
上面的配置會(huì)讓對(duì) HTTP 網(wǎng)頁(yè)的請(qǐng)求尖飞,重定向到 HTTPS 版本的網(wǎng)頁(yè)上。