準備
記錄下部署免費https的過程 ,使用Let's Encrypt的免費證書
下載自動安裝指令碼wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto
安裝
- 執行指令碼
./certbot-auto --nginx
這裡會下載一些東西,讓後讓你選擇你需要加https的域名,這個域名是在
nginx.conf
中配置的server
中讀取到的。注意選擇的域名只能是備案過的那個域名。因為這個指令碼會到DNS
伺服器去查這個域名對應的ip
伺服器。對不上也是不會給頒發證書的。
- 執行成功後,會讓你選擇是否把
http
的請求重定向到https
。直接選擇2
就行
到這裡已經配置成功了,訪問下網站就可以看效果了。 點選那個鎖還可以看到關於證書的詳細資訊
總結
其實這指令碼就是相當於一鍵安裝包,幫你申請https證書,然後下載到伺服器存放,然後在把證書配置到nginx.conf
裡邊。開啟nginx.conf
就能看到新增的配置資訊。
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
#該狀態程式碼301告訴瀏覽器(和搜尋引擎)這是永久重定向。這使瀏覽器記住重定向,以便下次訪問時,瀏覽器將在內部進行重定向
}# managed by Certbot
}
複製程式碼
附
由於Let's Encrypt這個證書90天后就過期了,可以使用cron做一個定時任務,因為我這個證書是18號申請的,所以每個月的19號就執行一次,執行crontab -e
後會進入個檔案輸入0 0 19 * * ./path/to/certbot-auto renew
crontab -e的五個引數分別代表,分鐘、小時、天、月、周。
參考
certbot.eff.org/lets-encryp…
bjornjohansen.no/redirect-to…
nginx.org/en/docs/htt…