Let’s Encrypt is a new Certificate Authority: It’s free, automated, and open.
letsencrypt 是一個免費的 CA ,有了它之后捻脖,要使用 HTTPS 鏈接的門檻就被降低了很多,很多個人網(wǎng)站也都能很方便的用上高大上的 HTTPS 了。
為了順應(yīng)潮流唯卖,這個周末我把 github-comment 這個社會化評論系統(tǒng)也全面升級到 HTTPS 了现横。
想要使用 Let's Encrypt墙歪,必要的條件只有兩個:
- 自己的服務(wù)器
- 自己的域名
首先在自己的服務(wù)器上下載 Let's Encrypt 的客戶端
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
然后進(jìn)入 /opt/letsencrypt
目錄,執(zhí)行 ./letsencrypt-auto certonly --standalone
(注意執(zhí)行命令時80端口不能被占用恳谎,所以如果你的 nginx 開著的話,要先關(guān)掉)憋肖。
然后就是交互式的對話框因痛,要你輸入郵箱地址(接收過期提醒用),以及要啟用的域名(用空格隔開)岸更,所有你填寫的域名都要能指向執(zhí)行命令的服務(wù)器(如果之前有 A record 是指向 github 的服務(wù)器的鸵膏, 記得轉(zhuǎn)回來)。這樣你就會得到一組密鑰怎炊,例如:
root@ubuntu:/var/www/songofcode.com# ls /etc/letsencrypt/live/songofcode.com/
cert.pem chain.pem fullchain.pem privkey.pem
下面就是對 nginx 的配置了谭企,打開 nginx 的配置文件,加入下面的內(nèi)容:
server {
listen 443 ssl;
server_name github-comment.songofcode.com;
ssl_certificate /etc/letsencrypt/live/songofcode.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/songofcode.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5000;
}
}
重啟 nginx评肆,試著訪問 https://github-comment.songofcode.com/, 證明 HTTPS 配置成功了债查。
原則上說對 HTTP 協(xié)議的加密不會影響到應(yīng)用層,不過實際上從應(yīng)用的角度說瓜挽,不修改東西是不可能的盹廷,首先我把客戶端中所有的 http 訪問路徑改為了 https,另外還有 github 的 application 處的回調(diào)也做了修改秸抚。網(wǎng)頁處的調(diào)用本來就是 https 的 cdn速和,不過我把版本號升級了,所以網(wǎng)頁端也要跟著改剥汤。
最后說下颠放,對于我這樣比較依賴 github 服務(wù)的人來說,這次改動的影響還是蠻大的吭敢,因為域名指向了自己的服務(wù)器碰凶,意味著不能使用 github 提供的 pages 服務(wù)了(當(dāng)然用 github 的子域名還是可以訪問的),這樣一來項目主頁和個人博客都需要自己去 host 到服務(wù)器上。沒辦法 HTTPS 是必然的趨勢欲低,github 不支持自定義域名的 HTTPS辕宏,那就只好放棄了。