首页 > 编程语言 >python3 SSLCertVerificationError 研究结论

python3 SSLCertVerificationError 研究结论

时间:2024-09-27 21:02:49浏览次数:17  
标签:结论 SSLCertVerificationError CA charles 代理 BUNDLE pem requests python3

上一篇博客已经分析ssl流程,这次直接说报错的结果方法:

对于pip3 安装第三方包失败:

1. 建议直接退出代理charles

2. 命令行前输入: 

export REQUESTS_CA_BUNDLE=~/Documents/charles-ssl-proxying-certificate.pem
, 然后执行pip3命令。  这个文件pem可以使用charles导出   如果需要代理, 也不行输入,就把这个文件写入.zshrc文件吧。   然后source ~/.zshrc   对于自己写的代码: 1. 不退出代理:  requests.get('https://www.baidu.com',verify=False) 2. 不退出代理:requests.get('https://www.baidu.com',verify="~/Documents/charles-ssl-proxying-certificate.pem") 3. 不退出代理:检查代理是否存在,如果存在,那么设置环境变量:
 1 import requests
 2 import os
 3 
 4 if requests.utils.getproxies():
 5     # 设置环境变量 REQUESTS_CA_BUNDLE
 6     os.environ['REQUESTS_CA_BUNDLE'] = '/path/Documents/charles-ssl-proxying-certificate.pem'
 7 
 8 print(requests.certs.where())
 9 # 发起请求
10 response = requests.get('https://www.baidu.com')
11 
12 # 打印响应内容
13 print(response.text)

4. 退出charles代理

5. 执行脚本前动态设置REQUESTS_CA_BUNDLE或者CURL_CA_BUNDLE

 

总结:

说了这么多方法, 如果开了代理,其实就一个点,一定要让ca_certs有值,  上面说的环境变量和verify目的都是为了ca_certs有值。或者不验证。注意:这里的不验证其实也是要验证的,

不过用系统默认的设置的证书。 默认证书:/usr/local/etc/openssl@3/cert.pem。    charles 设置代理 restore default会重置这个值

 

目前符合我的方式,我自己将这个变量REQUESTS_CA_BUNDLE写入了.zshrc文件了, 这样以后不管pip还是python3执行,不管有没有代理,都OK!这一点我感觉非常好!一劳永逸!

 

 

 

标签:结论,SSLCertVerificationError,CA,charles,代理,BUNDLE,pem,requests,python3
From: https://www.cnblogs.com/dzqdzq/p/18436545

相关文章

  • python3 numpy的一些小知识点
    简介一个用python实现的科学计算,包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。NumPy(NumericPython)提供了许多高级的数值......
  • 20个Python3实战项目代码,让你分分钟晋级大神!
    “读”代码是不能给你带来任何收益的,正如“读书”一样,如果在读的时候你不琢磨,保管你读完仨月准忘了一大半。真正需要的是去“试”代码,动手去调调代码,改改这改改那,看看把A变成B这个代码的结果会有什么变化。高效学习源代码的步骤:1.运行程序,观察表现2.运行源码,断点调试,从头跟......
  • 2024 Python3.10 系统入门+进阶(十五):文件及目录操作
    目录一、文件IO操作1.1创建或打开文件1.2读取文件1.2.1按行读取1.2.2多行读取1.2.3完整读取1.3写入文件1.3.1写入字符串1.3.2写入序列1.4上下文管理1.4.1with语句的使用1.4.2上下文管理器(拓展----可以学了面向对象之后再回来看)1.5文件的遍历二、os.pat......
  • centos7下安装Python3.7
    centos7默认安装的是python2.7,然而python2基本上要淘汰了,所以有必要安装最新的python3python,g++这些工具一般安装在/usr/bin目录里通过指令llpython*可以看到python指向的是python2.7我们要安装python3,使python指向python3下面开始具体步骤(参考其他大佬的方法,也是学了......
  • Python3 学习笔记6-os 模块、错误和异常、面向对象编程、类的专有方法、命名空间和作
    目录一、os模块: 常用方法: 二、错误和异常:(1)语法错误:(2)异常:(3)异常处理:(4)抛出异常:(5)用户自定义异常:(6)清理行为:(7)with语句:三、面向对象编程: (1)类和对象:(2)继承:(3)封装:(4)多态:(5)运算符重载: 四、类的专有方法:(1)__init__(self,...):(2)__del__(self):(3)__repr__(self):(4)__set......
  • Ubantu和Centos7一键shell更换镜像源与Linux系统Python3环境安装
    目录前言1.一键更换源1.1创建文件1.2向环境赋予可执行的权限 2.Linux系统配置Python3环境2.1查看当前python环境2.2更换源 2.3安装所需的依赖2.4.下载python环境文件2.5.解压文件2.6进行编译2.7 开始安装2.8 设置软连接2.9测试是否安装成功前言......