flask开启https服务支持

发布于:2025-05-10 ⋅ 阅读:(13) ⋅ 点赞:(0)

目录

一、背景

二、开启https支持

三、自签名

        1、安装openssl

        2、验证安装

        3、自签名

四、编写代码

五、访问https接口


一、背景

        最近在做自动化业务,需要兼容现在主流的框架开发的前端页面,于是到github找到了几个项目,clone下来项目并将相关的包下载完成后,整体打包放到了内网运行,这时候发现这个项目依赖的一个包进行了联网发送请求的行为,于是就先把文件从外网下载好,自己写一个接口,改一下那个源码调用自己的接口就好了。用flask写好后,尝试了一下,发现那个包只支持https接口的调用,于是就有了这篇文章。

二、开启https支持

        要想从http升级到hhtps需要进行ssl签名,签名是可以自签名,但只用测试,真正生成环境还是要走正规流程的。本文介绍下如何自签名,方便大家开发测试(本文编写是在基于linux环境下)。

三、自签名

        1、安装openssl

sudo yum install openssl

        2、验证安装

openssl version

        3、自签名

        自签名后生成一个ssl证书和私钥文件,注意生成后会保存到当前路径下。

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

# 若内存不够,可修改4096为2048或1024
# 最后加上-nodes参数,秘钥不进行加密,省内存
# 最后加上-verbose参数,可以在出错时打印出错的文件

四、编写代码

        上述步骤没问题后,我们可以得到key.pem和cert.pem两个文件,分别是私钥和ssl证书文件。接着我们就可以使用flask写https接口服务了。

from flask import Flask
from werkzeug.serving import run_simple


app = Flask(__name__)


@app.route('/httpsTest')
def httpsTest():
    return '成功开启https支持了'


if __name__ == '__main__':
    # 这里使用werkzeug启动服务,设置ssl相关参数
    run_simple('localhost', 9999, ssl_content('key.pem', 'cert.pem'))

 

五、访问https接口

        打开浏览器输入地址https://localhost/httpsTest回车查看返回,没问题就ok了!


网站公告

今日签到

点亮在社区的每一天
去签到