為了網頁服務的安全性,我們需要將提供的HTTP協定頁面,透過 SSL/TLS加密,升級成HTTPs。
這篇主要參考官網的攻略:
https://www.nginx.com/blog/using-free-ssltls-certificates-from-lets-encrypt-with-nginx/
而因為受限於資金有限,所以我將只提供攻略流程,而不會實際執行一次。
首先第一步可以先購買一個domain,大家可以到google domain購買自己喜歡的domain名稱:
再來依據Ubuntu版本不同來安裝certbot(利用Let’s Encrypt的服務來進行SSL/TLS加密,官網:
https://letsencrypt.org/ )
16.04
apt-get update
sudo apt-get install certbot
apt-get install python-certbot-nginx
18.04
apt-get update
sudo apt-get install certbot
apt-get install python3-certbot-nginx
至於其他OS或是版本,可以參考Certbot的官網:
https://certbot.eff.org/lets-encrypt/ubuntufocal-nginx
接著可以修改上次[Day 19]在site-enabled中的default指令:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/wilson/myapp;
server_name <購買的domain 網址>;
location / {
proxy_pass http://127.0.0.1:5000/;
proxy_set_header Host $host;
}
}
測試及reload Nginx:
nginx -t && nginx -s reload
SSL/TLS 驗證:
sudo certbot --nginx -d <購買的domain 網址>
看結果:
由於Let’s Encrypt只有90天的驗證有效性,所以可以使用 crontab 定期更新驗證: