当前位置: 首页 > web >正文

flask开启https服务支持

目录

一、背景

二、开启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_simpleapp = 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了!

http://www.xdnf.cn/news/4860.html

相关文章:

  • 基于WSL用MSVC编译ffmpeg7.1
  • O2OA(翱途)服务器故障排查
  • 【AI提示词】蝴蝶效应专家
  • 【wpf】12 在WPF中实现HTTP通信:封装HttpClient的最佳实践
  • 【递归,搜索与回溯算法篇】专题(一) - 递归
  • 初学python的我开始Leetcode题8-4
  • vue教程(vuepress版)
  • 深入理解二叉树(2)
  • Music AI Sandbox:打开你的创作新世界
  • 简单说明.nii.gz文件数据结构
  • QVariant 的核心用途
  • Springboot整合kafka简单使用
  • 功率级OBC自动化测试方案
  • swagger3融入springboot
  • keil使用
  • 【CF】Day54——Educational Codeforces Round 161 (Rated for Div. 2) DE
  • 【工具安装】Windows环境下Node.js的安装与配置
  • 网站公安备案流程及审核时间
  • SpringBoot默认选择CGLIB动态代理的深度解析:兼容性、性能与设计哲学
  • 【 window.addEventListener(‘message‘, handleMessage)无效的问题】
  • Java 中常见的数据结构及其常用 API
  • IBM崛起之路——领先的托管与咨询服务提供商
  • 【C++】C++函数指针详解与实用技巧
  • 15前端项目----用户信息/导航守卫
  • zst-2001 历年真题 数据库
  • [操作系统] 进程间通信:system V 信号量
  • 测试用例管理平台哪些好用?9款主流测试平台对比
  • 利用ollama.com本地部署大模型及Java验证全攻略
  • 画流程超神组合deepseek + UML
  • 力扣:多数元素