首页 > 编程语言 >Python打开https链接报错:unable to get local issuer certificate

Python打开https链接报错:unable to get local issuer certificate

时间:2024-02-23 14:01:40浏览次数:29  
标签:certificate get Python ca openssl pem 报错 cafile

Python打开https链接报错:unable to get local issuer certificate 或安装Python3.10以上版本,需要openssl 1.1.1以上版本,会导致openssl 下面缺少证书,记录下安装方法

问题描述:

当使用urllib.urlopen打开一个 https 链接时抛出如下异常:

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>

原因:

本地证书不存在。

解决方法:

1、查看默认证书位置

import ssl
print(ssl.get_default_verify_paths())

执行结果:

DefaultVerifyPaths(cafile=None, capath=None, openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/Library/Frameworks/Python.framework/Versions/3.7/etc/openssl/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/Library/Frameworks/Python.framework/Versions/3.7/etc/openssl/certs')

由结果可见,ca文件不存在。

2、下载ca文件

http://curl.haxx.se/ca/cacert.pem

3、将下载的ca文件放到【openssl_cafile】指定位置,并创建【openssl_capath】指定目录

cd /Library/Frameworks/Python.framework/Versions/3.7/etc/openssl 
mkdir certs 
mv ~/Downloads/cacert.pem ./ 
mv cacert.pem cert.pem

再运行脚本就不会报错了。

标签:certificate,get,Python,ca,openssl,pem,报错,cafile
From: https://www.cnblogs.com/kn-zheng/p/18029352

相关文章

  • windows11系统下ppt突然打不开,报错“PowerPoint启动时提示上次启动失败是否启用安全模
    问题描述:windows11系统下ppt突然打不开,报错:PowerPoint启动时提示上次启动失败是否启用安全模式...ppt文件是正常的,我发到其他设备上是可以正常打开的。我把office卸载了用腾讯文档也无法打开ppt文件。点击用安全模式打开后无反应,即无错误提示也没有打开ppt。以上情况说明:......
  • Field getType 和 getDeclaringClass 两个方法啥区别
    getType()和getDeclaringClass()是Java反射(Reflection)API中Field类的两个方法。这两个方法分别提供了关于字段(Field)的不同信息。以下是它们之间的主要区别:getType()getType()方法返回Field对象表示的字段的Class对象。它表示字段的类型,即字段可以持有的值的类......
  • 遇到Failed to get response from https://registry.npm.taobao.org/vue-cli-version-
    1.问题在启动vueui时,总是遇到报错,如下图:2.解决参考:vuecli创建项目报错:Failedtogetresponsefrom/vue-cli-version-marker找到你的.vuerc文件:C:\Users\trmbh\.vuerc,这里根据自己的用户名更改然后改为{"useTaobaoRegistry":false,"packageManager":"npm"}第......
  • 查询pytest --version报错 AttributeError: module ‘collections‘ has no attribute
     卸载pytest及关联的插件先查询一下pytest及对应关联的插件 pipuninstallcoloramaexceptiongroupiniconfigpackagingpluggytomliallure-pytestpytest-allure-adaptorpytest回车,每次都回复Y,同意卸载 再重新安装pytestpipinstallpytest-ihttp://pypi.douba......
  • 【Unity】ScriptableObject使用之后,重新打开Unity会报错
    导致问题出现的原因:ScriptableObject的类与其他类放一起了具体请见:unity2020.3官方文档ScriptableObject部分解决方法:为ScriptableObject单独创建一个c#脚本,并将c#名称与ScriptableObject类名保持一致。猜测出现这样的原因,如果哪里不对烦请大佬指正一下:Unity中基本上都是会通......
  • wget、axel、aria2区别与用法
    首先区别是:wget、axel和aria2都是在命令行下使用的下载工具,但它们在功能和特性上有一些区别。wget是最基础的命令行下载工具,它支持HTTP、HTTPS和FTP协议,并且可以在慢速或不稳定的网络连接下保持健壮性。如果下载过程中发生网络问题,wget会尝试重新下载,直到整个文件下载完成。此外......
  • Install fail! ResponseError: certificate has expired, GET https://r.npm.taobao.o
    ×Installfail!Error:certificatehasexpiredError:certificatehasexpiredatTLSSocket.onConnectSecure(_tls_wrap.js:1515:34)atTLSSocket.emit(events.js:400:28)atTLSSocket._finishInit(_tls_wrap.js:937:8)atTLSWrap.ssl.onhandshake......
  • 7+j就会报错,数字7就不会报错,我想加个变量应该怎么做呢?
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【黄志诚】问了一个Python处理Excel数据的问题。问题如下:问一个问题。7+j就会报错,数字7就不会报错,我想加个变量应该怎么做呢?二、实现过程这里【瑜亮老师】、【此类生物】、【巭孬......
  • 报错信息
     (base)➜DeepLSDgit:(main)✗pipinstall-eline_refinementLookinginindexes:https://pypi.tuna.tsinghua.edu.cn/simpleObtainingfile:///home/featurize/DeepLSD/line_refinementPreparingmetadata(setup.py)...doneInstallingcollectedpackages:line-......
  • Did We Get Everything Covered?
    小清新贪心题我们直接考虑如何找出反例,假设我们已经知道了这个反例,那么为什么找不到呢?我们在尝试找的时候,肯定是依次找反例的每个字母,根据贪心,肯定是越往前找越好,而即使这个样子我们最后都无法匹配完这个反例所以我们可以想出一个贪心算法:依次遍历每个字母,并用一个数组\(mark\)......