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

51次阅读

共计 1307 个字符,预计需要花费 4 分钟才能阅读完成。

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 运行我的项目!所以咱们要进行配置。

而后将我的项目进行打包到服务器的 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 了。

正文完
 0