Let’s Encrypt 是 Internet Security Research Group (ISRG) 所建立的一個 Certificate Authority (CA)。建立受信任的 https 連線,你需要從 CA 拿到一個 certificate。 EFF 提供了一套工具 Certbot,可以免費的、快速的幫你的網站拿到 Let’s Encrypt 的 ssl certificate,以達成 https 連線。
Certbot
Certbot 可以自動的幫你的網站部署 Let’s Encrypt 的 certificate。
步驟:
進入 Certbot,找到 I'm using Software on System
(如圖)
選擇你的網站使用的軟體跟系統,以筆者來說就是 Nginx
跟 Ubuntu(other)
。
再來,照著網站的安裝流程,得到 certbot-auto
這個工具。然後根據你的軟體的不同,執行 certbot-auto 並帶上不同的參數,比如 Nginx
就必須輸入 certbot-auto --nginx
。certbot 會開始根據你的環境,需要你輸入一些資料,以下是如果看到 certbot 要求的資料,你可以怎麼填:
- email: 你就輸入你的 email
- webroot: 輸入你的 http server 的 html 資料夾的路徑,像
Nginx
就可能是/usr/share/nginx/html
- 可能會問你要在哪個子網域啟用 https
- 會問你要不要強制使用 https,也就是 http 的連線都會導到 https,建議是選
Secure
。
等到 certbot 執行完畢,就可以看到你的網站有綠綠的 https 了
Trouble Shooting
在執行 Certbot 的過程中可能會遇到 80 port 被佔用的問題,error log 類似下面:
1 | 0.0.0.0:80 failed (98: Address already in use) |
你可以先把佔用 80 port 的 process 關掉
1 | sudo fuser -k 80/tcp |
等到 certbot 執行完畢後,再把 server 打開。