flask 设置https请求 访问flask服务器
学习过程中想要学教程中一样,做个假的微信公众号推送,不过去了微信开发文档怎么一直说需要https的请求(教学中没有说需要https,一直是http)
但是我的服务器只能使用http请求访问,如果硬是要在url中添加https 则会显示没有这个网站
于是我就想法让https请求也能请求到我的服务器域名上
我的域名是在阿里云买的,所以我就直接在阿里云上购买了证书,购买使用的是免费的1年证书
流程如下
购买之后显示,但是还没有绑定域名,所以需要申请证书绑定这个域名
点击申请,根据弹出的页面进行一个填写 我买的域名是 www.zengyimin.xyz
根据下一步不断填写信息,等待审核,出现如下画面表示绑定域名成功
点击下载 ,会下载一个压缩包
包名是绑定的域名
包中含有pem和key 证书和密匙,解压
接下来在放置 nginx 的服务器上进行操作 ,进入nginx的配置目录 (我是ubuntu)
cd /etc/nginx
该目录新建一个文件夹 放置证书和key
mkdir cert
将解压的文件上传至该文件夹
进入nginx的配置文件 (我的nginx版本不同,有些操作和你们不同,以下我的个人讲解你们看看就好 )
其中nginx.conf 是全部的配置文件集合, sites-acailable 和 siter-enabled 文件夹含有一些服务器的配置
如果你在sites中配置完成,启动nginx 时 nginx会带上nginx.conf 配置文件启动,配置文件会include导入 sites 中的配置文文件
同时sites 中的文件貌似是镜像文件? 更改一个另一个也会变
我的配置文件 进入 sites-enabled vim更改配置文件 default
这是我原本 http 80 端口的server服务配置 http不需要证书,所以不需要证书设置
https 443 的配置 ,在该文件中添加一个 server 服务
重启ngxin
service nginx restart
可以尝试在url中使用https请求nginx绑定的域名(我是一台机,其实就是flask服务器绑定的域名)了
免费证书会在google浏览器访问时提示有问题,所以需要证书还是购买有服务的比较好
http://www.zengyimin.xyz/api/v1.0/log
https://www.zengyimin.xyz/api/v1.0/log
都是一样的访问,不过http和https的请求都能请求,区别也不大...
除非用户输入http请求会自动跳转https的请求
所以我个人的最终方案
# 所有的往http80端口的请求都会被 rewrite 进行一个拦截 重定向 将http 请求改为https server {
listen 80;
server_name www.zengyimin.xyz;
rewrite ^(.*)$ https://$host$1 permanent; # <----------------- 重点 这是重定向 location / {
index index.html index.htm;
}
}
# 这是新增的 https 的server
server {
listen 443;
server_name www.zengyimin.xyz;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/2568867_www.zengyimin.xyz.pem; # 证书
ssl_certificate_key cert/2568867_www.zengyimin.xyz.key; # 密匙
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on; location / {
proxy_pass http://127.0.0.1:5001; # https请求转发到服务器ip地址
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; }
}
最终所有前往nginx服务器的请求都会被重定向到https请求
https://help.aliyun.com/document_detail/98728.html?spm=5176.2020520163.0.0.7bb9d5OKd5OKj5
https://lufficc.com/blog/configure-nginx-as-a-web-server
flask 设置https请求 访问flask服务器的更多相关文章
- [PHP自动化-进阶]003.CURL处理Https请求访问
引言:继前文<模拟登录并采集数据>,<模拟登录带有验证码的网站>,大家对CURL基本上已经有了认识,这一讲简单的说一下请求Https. 在很多的站点,如TalkingData, ...
- C#设置通过代理访问ftp服务器
// 创建FTP连接 private FtpWebRequest CreateFtpWebRequest(string uri, string requestMethod) { FtpWebReque ...
- 以加密方式访问tomcat服务器
以加密方式(https)访问tomcat服务器,就要求对相应的端口配置加密连接器connector. 配置加密连接器的方法如下: 1.生成数字证书 利用jdk里的keytool生成证书,keytool ...
- flask请求访问数据
flask请求访问数据 在flask框架中,访问请求数据由全局的request对象来提供,在flask框架中,request对象具有 全局作用域: from flask import request ...
- Flask设置Access-Control_Allow_Origin实现跨域访问
前端访问Flask的接口,浏览器报错:has been blocked by CORS policy: No 'Access-Control-Allow-Origin' heade 需要将Flask的 ...
- python——请求服务器(http请求和https请求)
一.http请求 1.http请求方式:get和post get一般用于获取/查询资源信息,在浏览器中直接输入url+请求参数点击enter之后连接成功服务器就能获取到的内容,post请求一般用于更新 ...
- Python中使用Flask、MongoDB搭建简易图片服务器
主要介绍了Python中使用Flask.MongoDB搭建简易图片服务器,本文是一个详细完整的教程,需要的朋友可以参考下 1.前期准备 通过 pip 或 easy_install 安装了 pymong ...
- 接口测试——HttpClient工具的https请求、代理设置、请求头设置、获取状态码和响应头
目录 https请求 代理设置 请求头设置 获取状态码 接收响应头 https请求 https协议(Secure Hypertext Transfer Protocol) : 安全超文本传输协议, H ...
- 部署Flask项目到腾讯云服务器CentOS7
部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...
随机推荐
- jquery框架概览(二)
(function(window, undefined) { })(window) window对象作为参数传进闭包的好处 JavaScript 全局对象.函数以及变量均自动成为 window 对象的 ...
- SpringBoot之HandlerInterceptor拦截器的使用 ——(三)获取requestBody解决java.io.IOException: Stream closed
原文地址:https://blog.csdn.net/zhibo_lv/article/details/81875705 感谢原作者
- php单例模式的常见应用场景
单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此 ...
- Linux上部署Tomcat+Nginx负载均衡
前提:配置好了JDK. 我这里是vm上的linux虚拟机,可能不适用于所有情况. 一.Linux上配置Tomcat 1.下载地址:https://tomcat.apache.org/download- ...
- 初级string
标准库string类型 string对象初始化 string s1; string s2(s1); string s3("value"); string s4(n,'c'); st ...
- 吴裕雄--天生自然 人工智能机器学习实战代码:LASSO回归
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model from s ...
- 机器学习入门 - 逻辑(Logistic)回归(5)
原文地址:http://www.bugingcode.com/machine_learning/ex7.html 把所有的问题都转换为程序问题,可以通过程序来就问题进行求解了. 这里的模拟问题来之于C ...
- Bootstrap插件及其应用方法网址
全局CCS样式 https://v3.bootcss.com/css/#type-lists 组件 https://v3.bootcss.com/components/#pagination Boot ...
- TCP并发、GIL全局锁、多线程讨论
TCP实现并发 #client客户端 import socket client = socket.socket() client.connect(('127.0.0.1',8080)) while T ...
- jQuery学习笔记三
使用fadeIn()js解释器会将所选元素的CSS opacity属性从0改为100,fadeTo()会动画显示所选元素,将它为改为某个特定的透明度百分比,使用fadeOut()js解释器会将所选元素 ...