Python 3.12用boto3连接AWS Glue遇SSL证书验证失败错误(_ssl.c:1000)
解决AWS Glue boto3连接SSL验证失败问题
1. 直接指定可信证书路径(绕过venv权限问题)
- 下载可信CA证书(比如AWS官方根证书或系统自带的可信证书),放到你拥有读写权限的目录(例如
C:\Users\你的用户名\certs\cacert.pem) - 通过两种方式让boto3使用该证书:
- 方式一:设置环境变量
import os os.environ['REQUESTS_CA_BUNDLE'] = r'C:\Users\你的用户名\certs\cacert.pem' os.environ['SSL_CERT_FILE'] = r'C:\Users\你的用户名\certs\cacert.pem' - 方式二:初始化boto3客户端时指定验证路径
import boto3 glue_client = boto3.client( 'glue', region_name='你的AWS区域', verify=r'C:\Users\你的用户名\certs\cacert.pem' )
- 方式一:设置环境变量
2. 修复venv的certifi权限问题
- 右键点击
.venv文件夹,选择「属性」→「安全」→「高级」 - 点击「更改权限」,确保你的用户账号拥有「完全控制」权限,勾选「替换子容器和对象的权限」后应用设置,再重试证书安装操作
- 若仍失败,用管理员权限打开命令提示符,进入venv的Scripts目录(如
cd .venv\Scripts),激活虚拟环境后重新运行证书安装命令
3. 临时禁用SSL验证(仅测试用,不推荐生产环境)
- 若之前设置
ssl._create_unverified_context未生效,确保boto3在设置后导入:import ssl ssl._create_default_https_context = ssl._create_unverified_context import boto3 glue_client = boto3.client('glue', region_name='你的AWS区域') - 或直接在客户端初始化时关闭验证:
glue_client = boto3.client('glue', region_name='你的AWS区域', verify=False)
4. 排查网络与安全软件干扰
- 确认工作站是否新增了代理服务器,或防火墙、EDR等安全软件拦截了SSL连接
- 临时关闭安全软件测试,或配置安全软件允许Python脚本访问AWS Glue域名(格式:
glue.你的区域.amazonaws.com)
内容的提问来源于stack exchange,提问作者Jeff A
相关产品推荐
相关产品推荐

