伸缩自如的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名称:

http://img2.58codes.com/2024/20122678ehRknz5AhZ.png

再来依据Ubuntu版本不同来安装certbot(利用Let’s Encrypt的服务来进行SSL/TLS加密,官网:
https://letsencrypt.org/ )

16.04

apt-get updatesudo apt-get install certbotapt-get install python-certbot-nginx

18.04

apt-get updatesudo apt-get install certbotapt-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 网址> 

看结果:

http://img2.58codes.com/2024/20122678r40tlXRkG1.png

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

http://img2.58codes.com/2024/20122678moU6muWMOD.png

[day 1] 开场白[day 2] blue_print[day 3] Factory mode[day 4] JWT token[day 5] session[day 6] Jinja[day 7] Post data with Form tag[day 8] ajax with jquery[day 9] request[day 10] 将资料写进DB(pymongo)[day 11] log with mongoDB[day 12] Sql Database[day 13] 档案上传[day 14] 档案下载 及 其他传值方法[day 15] boostrap 4.6[day 16] API[day 17] Docker image化--安装篇[day 18] Docker image化--运行篇[day 19] Nginx[day 20] Docker compose[day 21] Nginx with https[day 22] pythonanywhere 部署[day 23] GCP app engine (介绍)[day 24] GCP app engine (deploy)[day 25] Flask with web cam[day 26] Flask with ML[day 27] Supervisor[day 28] Flask-Mail[day 29] Line Messaging API[day 30] 结语

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章