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)
<think>我们正在讨论如何配置JFlash工具。JFlash是SEGGER公司推出的一款用于编程闪存(Flash)的软件工具,常用于嵌入式开发中烧录程序到微控制器的Flash存储器。 由于用户的问题是关于配置JFlash工具,我们需要提供配置步骤。配置JFlash通常包括以下几个关键步骤: 1. 安装JFlash软件:首先需要从SEGGER官网下载并安装JFlash工具。 2. 连接目标硬件:通过调试器(如J-Link)连接目标设备和计算机。 3. 创建或选择项目:在JFlash中创建新项目或打开现有项目,并选择目标设备(芯片型号)。 4. 配置项目设置:包括接口类型(JTAG/SWD)、速度、目标地址等。 5. 加载要烧录的文件:通常是HEX、BIN或ELF格式的文件。 6. 连接目标设备并烧录。 下面我们详细说明这些步骤。 ### 安装JFlash 首先,访问SEGGER官网(https://www.segger.com/)下载J-Flash软件。安装过程与常规软件安装类似。 ### 连接硬件 使用J-Link调试器连接目标板。确保连接正确(电源、调试接口等)。 ### 创建项目 1. 启动JFlash软件。 2. 选择“Create a new project”或通过菜单“File”->“New Project”创建新项目。 3. 在弹出的“Project settings”对话框中,选择目标设备(Target Device)。可以通过输入芯片型号搜索,例如“STM32F407IG”。 ### 配置项目设置 在“Project settings”对话框中,通常需要配置以下标签页: - “Target Interface”:选择接口类型(JTAG或SWD)和速度(通常默认即可)。 - “CPU”:确认芯片内核和初始设置(如复位方式)。 - “Flash”:配置Flash的起始地址和大小(通常自动填充)。 ### 加载文件 通过菜单“File”->“Open data file”加载要烧录的文件(如.hex、.bin或.elf文件)。 ### 连接与烧录 1. 点击菜单“Target”->“Connect”或工具栏上的连接图标,连接目标设备。 2. 连接成功后,点击“Target”->“Production Programming”或按F7键开始烧录。 注意:在烧录前,可能需要擦除目标芯片的Flash。在“Production Programming”对话框中,可以选择“Erase chip before programming”。 以上是基本的配置步骤。根据具体的目标芯片,可能还需要进行其他配置。 如果在配置过程中遇到问题,可以查阅JFlash安装目录下的文档或访问SEGGER官网获取支持。 §§相关问题§§ 1. 如何解决JFlash连接目标设备失败的问题? 2. JFlash支持哪些文件格式? 3. 如何配置JFlash进行自动烧录? 4. 如何更新JFlash的器件支持包?</think>### 如何配置JFlash工具 JFlash是SEGGER公司开发的嵌入式烧录工具,用于将固件程序烧录到微控制器的Flash存储器中。以下是详细配置步骤: #### 1. **安装JFlash软件** - 从[SEGGER官网](https://www.segger.com/downloads/jlink/)下载J-Flash软件包(包含JFlash工具) - 运行安装程序,默认设置即可完成安装 - 安装时勾选设备支持包(Device Family Pack, DFP)确保目标芯片支持[^1] #### 2. **硬件连接** ```mermaid graph LR PC[计算机USB接口] --> JLink[J-Link调试器] JLink -->|SWD/JTAG接口| MCU[目标微控制器] ``` - 使用J-Link调试器连接目标板 - 确认接口类型(SWD或JTAG),通常SWD更常用 - 确保目标板供电(可通过J-Link供电或外部电源) #### 3. **创建新项目** 1. 启动JFlash,选择 `File > New Project` 2. 在弹窗中选择目标芯片型号(如STM32F407IG) 3. 点击 `OK` 创建项目 #### 4. **关键配置参数** | 配置项 | 推荐设置 | 说明 | |------------------|--------------------------|-----------------------| | Interface | SWD (或JTAG) | 根据硬件连接选择 | | Speed | 4000 kHz | 可降低以提高稳定性 | | Target Voltage | 3.3V (与目标板匹配) | 必须与实际电压一致 | | Flash Algorithm | 自动加载(或手动指定) | 确保支持目标芯片 | #### 5. **加载固件文件** - 选择 `File > Open Data File` - 支持格式:`*.hex`, `*.bin`, `*.elf` - 设置烧录地址(通常HEX/ELF文件自动包含地址信息) #### 6. **烧录配置** ```python # 伪代码:烧录流程逻辑 if 连接成功: 擦除芯片(选项:"Erase Chip") 编程文件(选项:"Program & Verify") 复位芯片(选项:"Reset after program") ``` - 勾选 `Verify after programming` 确保数据校验 - 勾选 `Reset and run` 使芯片复位后立即运行程序 #### 7. **保存项目模板** - 选择 `File > Save Project As...` - 保存为 `*.jflash` 文件,便于后续复用配置 #### 8. **执行烧录** - 点击工具栏的 `Target > Production Programming` 或按 `F7` - 观察日志窗口输出: ``` Programming... Done. Verifying... Done. ``` ### 常见问题排查 - **连接失败**: 1. 检查硬件供电是否正常 2. 降低接口速度(如改为100 kHz) 3. 确认SWD引脚未占用(如BOOT0引脚状态) - **校验错误**: 1. 检查目标电压是否匹配 2. 重新加载Flash算法文件 3. 尝试整片擦除(Full Chip Erase) > 提示:可通过 `Options > Project Settings > Target Interface` 调整高级时序参数解决稳定性问题[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

warrah

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

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

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

打赏作者

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

抵扣说明:

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

余额充值