设置 Flask HTTPS 服务器

问题描述 投票:0回答:1

我的任务是将证书添加到我的 Flask 服务器。服务器响应 HTTP 请求。

有人有如何设置 Flask HTTPS 服务器的经验吗? 我使用 certbot 工具生成了私钥和公钥。有关此工具的信息如下:https://certbot.eff.org/instructions?ws=webproduct&os=snap

总之,

certbot
允许您创建编码为
.pem
文件的私钥和公钥。然后用于加密和解密客户端和服务器之间交换的流量。

我使用女服务员库向客户提供内容。 这是完成这项工作的线路:

serve(app, host='0.0.0.0', port=80)

有人知道如何从这里过渡到有人可以使用 HTTPS 协议访问我的页面的状态吗?换句话说,HTTPS是否握手并交换数据?

我尝试过这条线:

serve(app, host='0.0.0.0', port=5000, url_scheme='https', 
      certfile='path/to/certfile.pem', keyfile='path/to/keyfile.pem')

我困惑地发现了这一行: https://www.perplexity.ai/search/run-flask-https-server-jPPLZHcERamQ5YBqFlVIBQ

python flask
1个回答
0
投票

尝试配置Nginx

  1. 在 http://localhost:5000 运行 Flask

  2. 创建配置文件

    /etc/nginx/sites-available/yourdomain

对于HTTP

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

对于 HTTPS

server {
    yourdomain.com;
    client_max_body_size 10M;
    
    location / {
        proxy_pass http://localhost:5000;
    }
    
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    
}
  1. 创建符号链接

    sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled/

  2. 重新加载 Nginx

    sudo systemctl restart nginx.service

© www.soinside.com 2019 - 2024. All rights reserved.