如何全局启用及禁用AWS CLI的--no-verify-ssl参数?
临时解决S3交互时的SSL验证失败问题
临时全局禁用SSL验证的方法
针对Python boto3 SDK
有两种方式实现全局禁用:
通过代码全局配置
在初始化boto3会话时设置全局配置,后续创建的所有S3客户端都会自动应用:import boto3 from botocore.config import Config # 全局禁用SSL验证 global_config = Config(verify=False) boto3.setup_default_session(config=global_config) # 正常创建S3客户端即可 s3_client = boto3.client('s3')通过环境变量全局生效
运行Python脚本前设置环境变量,无需修改代码:- Linux/macOS终端:
export BOTOCORE_NO_VERIFY_SSL=true - Windows CMD:
set BOTOCORE_NO_VERIFY_SSL=true - Windows PowerShell:
$env:BOTOCORE_NO_VERIFY_SSL = "true"
- Linux/macOS终端:
针对AWS CLI(若使用CLI工具交互)
要全局启用--no-verify-ssl,可以修改AWS配置文件:
- 编辑配置文件:
- Linux/macOS:
~/.aws/config - Windows:
C:\Users\<你的用户名>\.aws\config
添加以下内容:
[default] no_verify_ssl = true - Linux/macOS:
- 或者用CLI命令直接设置:
aws configure set default.no_verify_ssl true
禁用SSL验证的风险
务必注意:关闭SSL验证会彻底失去对S3服务端身份的校验,你的请求可能被中间人拦截、篡改或窃取数据,这是非常不安全的操作,只能作为临时应急方案,问题修复后必须立即恢复验证。
问题修复后恢复SSL验证的步骤
针对boto3代码
- 如果是通过代码配置的
verify=False,直接删除该配置项(默认verify=True),恢复为:import boto3 # 恢复默认配置,自动启用SSL验证 s3_client = boto3.client('s3') - 如果是通过环境变量设置的,取消环境变量:
- Linux/macOS终端:
unset BOTOCORE_NO_VERIFY_SSL - Windows CMD:
set BOTOCORE_NO_VERIFY_SSL= - Windows PowerShell:
Remove-Item Env:BOTOCORE_NO_VERIFY_SSL
- Linux/macOS终端:
针对AWS CLI
- 编辑配置文件,删除
no_verify_ssl = true这一行; - 或者用CLI命令重置:
aws configure set default.no_verify_ssl false
内容的提问来源于stack exchange,提问作者layman
相关产品推荐
相关产品推荐

