python中Flask项目使用https访问接口以及部署服务器进行访问

HTTPS

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面

Http

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

一般来说我们再本地测试或者不是那么重要的时候都是使用Http用作传输协议进行工作。

比如使用python当中的Flask项目进行跑的时候是这样子

那么我们如果要是用https的话。应该添加ssl证书使用PyOpenSSL包

首先申请ssl证书。前提有注册好的域名。我使用的阿里云注册的域名并且注册免费一年的证书。

然后点击下载,根据自己需求下载key 和 pem 证书

下载解压后会生成俩个文件 一个是key 一个是pem。文件名可以改。

如图: (放到与run.py同级目录)

然后下载PyOpenSSL包
pip install PyOpenSSL

然后将证书添加到配置里运行(key 和pem顺序不能搞错。不然运行不成功)

可以看到https的访问格式

在本地使用比较简单的配置一般都是可以,但是要部署到服务器上。进行外网的访问,那么证书,前端,域名都需要按照要求真实。

首先将flask项目进行Gunicorn + Gevent 的部署,使用docker打包到线上进行外网访问。(之前的文章有写这个操作)

因为线上是使用Gunicorn运行项目!所以我们要进行配置。

可以使用Gunicorn命令启动Flask项目

gunicorn -w 4 -b 192.168.1.79:4000 run:app --keyfile server.key --certfile server.pem

后面打包docker到服务器的时候是通过Gunicorn启动项目,所以Gunicorn.conf.py配置一定要写对!

然后将项目进行打包到服务器的docker上面(之前文章有写过这个操作)

后端访问:服务器ip + 8111
前端访问:服务器ip + 8222

现在在使用nginx代理域名,以及前后端docker容器端口

域名和证书一定是匹配的!

前端测试

接下来可以在本地前端测试一下

使用https + 域名 + 8111 去访问后端代码接口(如果没有前端环境,可以使用Apipost 和 postman测试)

使用本地前端测试访问https + 域名 + 后端容器端口

这样子就成功的使用前端去调试和访问后端线上的接口和测试了

使用ApiPost测试一下接口

https + 域名 + 8111(后端线上端口) + 接口

https + 服务器ip + 8111(后端线上端口) + 接口

能得到数据就证明访问线上接口成功!

想要在外网使用https,就按照我的操作,将前端打包部署到docker,然后使用nginx做代理。添加域名以及ssl证书中key 和pem ,文件路径不能搞错。然后进行上线就OK了。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值