flask配置https

登录linux机器,centos自带openssl

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.or
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

1 flask自身配置https
flask启动按照下面进行配置

    app.run(host='0.0.0.0',port=5000,debug=True,ssl_context=('./server.crt','./server.key'))

2 nginx配置https
一般情况并不会由flask自己做https,总需要nginx做反向代理,进行内外网隔离。故可以在nginx中增加配置

server {
  listen 443 ssl;
	client_max_body_size 100M;
	#mycom
	server_name www.dzmsoft.com ;
	
	charset utf-8; 
	ssl on;
	#ssl_certificate /application/nginx/nginx/conf/eds_ca/server.crt;
	#ssl_certificate_key /application/nginx/nginx/conf/eds_ca/server.key;
	ssl_certificate /application/nginx/nginx/conf/mycert.pem;
	ssl_certificate_key /application/nginx/nginx/conf/server.key;
	ssl_session_cache shared:SSL:10m;
	ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
	ssl_prefer_server_ciphers on;
	
	index index.jsp default.jsp index.do default.do index.html index.htm index.php forum.php;
	access_log  logs/dzmsoft_access.log main;
	
	location / {
		proxy_pass http://dzmsoft_p;
		}

	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|svg|flv|xml)(.*)$
	{
		expires 15d;
		proxy_pass http://dzmsoft_p;
	}

	location ~ .*\.(js|css|gzcss|gzjs)(.*)$
	{
		expires 1d;
		proxy_pass http://dzmsoft_p;
	}

	location /(WEB-INF)/ {
		deny all;
	}

	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|svg|flv|js|css|gzcss|gzjs)?$
	{
		if (-f $request_filename) {
			expires 1d;
			break;
		}
	}
	
	error_page   500 502 503 504  /50x.html;
	location = /50x.html {
        root   html;
    }
}

这时flask的启动,应该是

app.run(host='0.0.0.0',port=5000,debug=True)

这里有一点需要注意,nginx配置了https了,那么flask是可以不用配置的https了。
另外下面的配置,也代表了nginx转发请求到flask的web服务是http的,

location / {
		proxy_pass http://dzmsoft_p;
		}

如果proxy_pass https://dzmsoft_p;,那么就要求flask也应该是https的,否则接口协议转换就会出现异常,提示HTTP/0.9的问题,以及nginx出现502的问题,和flask接收到乱码。
因为nginx负责转发,而且nginx配置了https,那么nginx已经做了协议转换,就不需要flask再多次一举,故这里配置http即可。
3 python调用https请求示例
重点是verify=False配置。

import requests
import json
requests.packages.urllib3.disable_warnings()
edata ={
    "code" : str(4201),
    'paper': str(1)
}
r = requests.post('https://www.dzmsoft.com/api/edata',params = edata, verify=False)

try:
    dic_source = json.loads(r.text)
    # print(len(dic_source['_source']))
    print("总共查询到{}条数据".format(dic_source['total']))
except:
    print(r.text)
根据引用\[1\]和引用\[2\]的代码片段,可以看出在使用CubeMX配置flash时,需要进行以下几个步骤: 1. 配置SPI:在CubeMX的Connectivity选项中选择SPI1,并设置为Full-Duplex Master全双工主模式。不需要使用硬件片选信号(NSS),可以选择任意外部引脚作为输出模式。同时,将时钟分频设置为4分频。 2. 修改工程配置:根据引用\[3\]中的描述,需要对工程进行一些准备工作和配置修改。具体的步骤可能因具体情况而异,但一般包括连接外部flash芯片到正确的引脚上,并确保芯片型号和引脚配置正确。 3. 修改代码:根据引用\[1\]和引用\[2\]中的代码片段,需要对代码进行修改以适配外部flash芯片。具体的修改包括读写函数的实现和相关的命令字节设置等。 总结起来,配置flash的步骤包括配置SPI、修改工程配置和修改代码。具体的配置和修改步骤可能因具体情况而异,需要根据具体的芯片型号和引脚配置进行调整。 #### 引用[.reference_title] - *1* *3* [使用cubemx建立一个外部flash虚拟U盘的工程](https://blog.csdn.net/givemeyouhand/article/details/123391105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用cubemx工具的STM32对外部flash(W25Q64)的简单编程](https://blog.csdn.net/bebebug/article/details/124372652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值