我在Ubuntu 18.04的Gunicorn上运行了一个Flask应用程序。Gunicorn在端口80上运行。我安装了NGINX,但它没有使用,被禁用了。我能够成功地为NGINX安装cert-bot,但它没有帮助,因为NGINX没有使用,而且它还与80端口上的gunicorn冲突。是否有可能获得专门用于Gunicorn/Flask的SSL证书或可以与它一起工作的东西?SSL和https
对于页面是必不可少的。
我在Ubuntu 18.04的Gunicorn上运行了一个Flask应用程序。Gunicorn在端口80上运行。我安装了NGINX,但它没有使用,被禁用了。我能够成功地为NGINX安装cert-bot,但它没有帮助,因为NGINX没有使用,而且它还与80端口上的gunicorn冲突。是否有可能获得专门用于Gunicorn/Flask的SSL证书或可以与它一起工作的东西?SSL和https
对于页面是必不可少的。
3条答案
按热度按时间t9aqgxwy1#
您可以在Gunicorn上使用certbot生成的SSL证书:
1.软件“其他”遵循certbot instructions。注意生成文件的保存位置。
1.运行Gunicorn并使用--keyfile和--certfile选项指定证书和密钥路径。示例:
gunicorn --keyfile /some/path/key.pem --certfile /some/path/cert.pem main:app
uqdfh47h2#
另一种方法是使用
ngrok
之类的安全隧道服务。使用ngrok
,您可以轻松地从gunicorn
服务器通过隧道连接到他们提供的启用https
的端点。根据您的目的,这可能是一种方便的解决方法。它非常非常容易使用--就我个人而言,我觉得
nginx
对于第一次使用来说有点复杂。使用
ngrok
非常简单(安装后):这为您提供了一个像
https://abcd.ngrok.io
这样的安全端点,您可以向其发送请求,就像向gunicorn
服务器发送请求一样。所以
http://0.0.0.0:4000/hello
变成了https://abcd.ngrok.io/hello
wkyowqbh3#
我建议将
Gunicorn
的端口更改为其他端口,甚至将其绑定到套接字。然后可以使用
Nginx
来处理SSL。Gunicorn
提供了大量文档:https://docs.gunicorn.org/en/stable/index.html
更新
DigitalOcean总是提供非常好的教程:
https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-18-04