iT邦幫忙

0

伸縮自如的Flask [day 21] Nginx with https

為了網頁服務的安全性,我們需要將提供的HTTP協定頁面,透過 SSL/TLS加密,升級成HTTPs。

這篇主要參考官網的攻略:

https://www.nginx.com/blog/using-free-ssltls-certificates-from-lets-encrypt-with-nginx/

而因為受限於資金有限,所以我將只提供攻略流程,而不會實際執行一次。

首先第一步可以先購買一個domain,大家可以到google domain購買自己喜歡的domain名稱:

https://ithelp.ithome.com.tw/upload/images/20210603/20122678ehRknz5AhZ.png

再來依據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 網址> 

看結果:

https://ithelp.ithome.com.tw/upload/images/20210603/20122678r40tlXRkG1.png

由於Let’s Encrypt只有90天的驗證有效性,所以可以使用 crontab 定期更新驗證:

https://ithelp.ithome.com.tw/upload/images/20210603/20122678moU6muWMOD.png


尚未有邦友留言

立即登入留言