目录
一、背景
最近在做自动化业务,需要兼容现在主流的框架开发的前端页面,于是到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了!