HTTPSHTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer),是一种以安全为目标的HTTP通道,通过传输加密和保证基于HTTP的身份认证保证了传输过程的安全[1]。HTTPS在HTTP的基础上增加了SSL,HTTPS的安全基础是SSL,所以加密的详细内容需要SSL。HTTPS具有与HTTP不同的默认端口和加密/身份验证层(介于HTTP和TCP之间)。系统提供认证和加密通信方式。广泛应用于万维网上对安全敏感的通信,如交易支付等。Http超文本传输??协议(HypertextTransferProtocol,HTTP)是一种简单的请求-响应协议,通常运行在TCP之上。它指定了客户端可以向服务器发送什么样的消息以及它可以得到什么样的响应。请求和响应消息的头部以ASCII给出;消息内容具有类似MIME的格式。这种简单的模型促成了早期Web的成功,因为它使开发和部署变得非常简单。一般来说,我们在本地测试或者不是那么重要的时候,都会使用Http作为传输协议。比如在python中使用Flask项目时就是这样,那么如果我们使用https。应该使用PyOpenSSL包添加ssl证书以首先请求ssl证书。前提是要有注册域名。我用的是阿里云注册的域名,免费注册一年证书。然后点击下载,根据需要下载密钥和pem证书。下载解压后会生成两个文件,一个是key,一个是pem。文件名可以更改。如图:(放在run.py同目录下)然后下载PyOpenSSL包pipinstallPyOpenSSL然后在配置里加入证书运行即可(key和pem的顺序不能错,否则,操作不会成功)并且可以看到https的访问格式一般在本地使用比较简单的配置是可以的,但是必须要部署到服务器上。访问外网时,证书、前端、域名必须是真实的。首先用Gunicorn+Gevent部署flask项目,使用docker在线打包,供外网访问。(这个操作在之前的文章中写过)因为在线运行项目使用的是Gunicorn!所以我们要配置。可以使用Gunicorn命令启动Flask项目gunicorn-w4-b192.168.1.79:4000run:app--keyfileserver.key--certfileserver.pem将docker打包到服务器后,项目由Gunicorn启动,所以Gunicorn.conf.py配置一定要写对!然后在服务器的docker上打包项目(这个操作在上一篇文章中已经写过了)后端访问:serverip+8111前端访问:serverip+8222现在使用的是nginx代理域名,front-enddocker容器端口域名和证书必须匹配!前端测试接下来就可以在本地前端进行测试了。使用https+域名+8111访问后台代码接口(如果没有前端环境,可以使用Apipost和postman进行测试)。像这样使用本地前端测试访问https+域名+后端容器端口我成功使用前端调试访问后端上线接口使用ApiPost测试接口https+域名称+8111(后端在线端口)+接口https+服务器ip+8111(后端在线端口)+接口性能获取数据证明访问在线接口成功!如果要在外网使用https,按照我的操作,将前端打包部署到docker上,然后使用nginx做代理。添加域名和ssl证书中的key和pem,文件路径不能写错。然后上网就OK了。
