隨著 HTTPS 的普及,現(xiàn)在不用 HTTPS 都不好意思把網(wǎng)站發(fā)給別人了疆股,所以索性也把個人博客升級到 HTTPS 费坊。
HTTPS 帶來的好處不用多說了,直入正題旬痹。
環(huán)境配置
先說一下服務(wù)器環(huán)境配置附井,根據(jù)運行環(huán)境不同,可能會有少許配置差異两残。
1. OS: Ubuntu 14.04.2
2. Web Server: Nginx 1.4.6
3. CGI: PHP-FPM
證書
現(xiàn)在提供免費證書的公益組織非常多了永毅,Let's encrypt 就是其中一家。為了減少配置工作人弓,推薦使用他們的 Shell 工具 certbot 在服務(wù)端自動配置沼死。官網(wǎng)上列有不同 OS 的下載與安裝方法。
官方推薦方式:
certbot --nginx
我們這里用的是指定參數(shù)安裝
certbot certonly --webroot -w /var/www/blog -d doruby.com
-w 是你站點存放的位置票从,目的是在對應(yīng)的目錄下漫雕,創(chuàng)建 well-known/acme-challenge/ 這樣的目錄,并放入認(rèn)證文件峰鄙,它會讓官網(wǎng)根據(jù)這個文件是否可訪問浸间,來判斷這個域名是不是你所擁有的。所以要保證這個目錄是可以被外部所訪問到的吟榴。
所以在執(zhí)行這個命令前魁蒜,先確認(rèn)你的 nginx 配置了它可被訪問:
server{
? ? ? ....
? ? ? location ~ /.well-known {
? ? ? ? ? allow all;
? ? ? }
}
-d 是對應(yīng)的域名,多個域名可以在后面繼續(xù)用 -d 添加
如果命令順利執(zhí)行完成吩翻,會收到 Congratulations 的提示兜看,并提示證書所在位置,比如 /etc/letsencrypt/live/doruby.com/fullchain.pem 記錄下來狭瞎。
在 Nginx 配置文件中细移,添加 SSL 相關(guān)配置
server {
? ? listen 443;? # 原先應(yīng)該是 80
? ? # ......
? ? ssl on
? ? ssl_certificate /etc/letsencrypt/live/doruby.com/fullchain.pem;
? ? ssl_certificate_key /etc/letsencrypt/live/doruby.com/privkey.pem;
? ? # ......
}
如果相讓原先訪問 Http 的入口自動跳轉(zhuǎn)到 Https ,可以再增加一些配置
server {
? ? listen 80;
? ? server_name doruby.com;
? ? return 301 https://$host$request_uri;
}
OK. 重啟 Nginx ,順利的話你現(xiàn)在應(yīng)該可以看到你的網(wǎng)站跳到 Https 了熊锭,并且前面會有綠色小鎖弧轧。
這里有幾點需要注意
1. 如果創(chuàng)建證書遇到問題,第一時間檢查提示的日志文件
2. 如果配置完成后碗殷,網(wǎng)站打不開精绎,establish 不成功,先檢查一下服務(wù)器有沒有打開 443 端口的訪問權(quán)限