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了。