You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS环境连接GCP遇SSL证书验证失败,如何关闭校验或配置代理

问题解决方案

前置修正

你提供的代码存在缩进错误,try代码块下的逻辑没有正确缩进,运行前请先调整为合规的Python缩进格式。


方案1:关闭SSL校验(仅本地临时调试用,禁止生产环境使用)

注意:关闭SSL校验会暴露通信内容,存在数据被窃听、篡改的安全风险,仅可用于本地排查问题,不得用于任何线上环境

操作方式如下:

  1. 可通过设置全局环境变量直接关闭requests库的SSL校验,在代码开头添加以下配置:
import os
os.environ['REQUESTS_CA_BUNDLE'] = ''
os.environ['CURL_CA_BUNDLE'] = ''
  1. 也可在创建GCS客户端时传入自定义HTTP会话,单独关闭当前客户端的SSL校验,修改后的代码如下:
import os
import requests
from google.cloud import storage

def gcsStorageClient(errLogRef):        
    try:
        # 自定义会话,关闭SSL校验
        session = requests.Session()
        session.verify = False

        storage_client = storage.Client(
            project=os.environ.get("project_name"),
            _http=session
        )
        bucket = storage_client.get_bucket(os.environ.get("bucket_name"))
        blob = bucket.get_blob(os.environ.get("private_key_file"))
        file = blob.download_as_string()
        return file
    except Exception as error:
        print("error:: ", error)

方案2:配置代理连接GCP

可以通过环境变量或者代码配置两种方式设置代理:

  • 终端环境变量配置(运行脚本前执行,替换为你实际的代理地址):
# 无认证代理配置
export HTTP_PROXY=http://代理IP:端口
export HTTPS_PROXY=http://代理IP:端口

# 需认证代理配置
# export HTTPS_PROXY=http://用户名:密码@代理IP:端口
  • 代码内硬编码配置代理,修改后的代码如下:
import os
import requests
from google.cloud import storage

def gcsStorageClient(errLogRef):        
    try:
        # 自定义会话,配置代理
        session = requests.Session()
        session.proxies = {
            "http": "http://代理IP:端口",
            "https": "http://代理IP:端口"
        }
        # 如果不需要关闭SSL可删除下一行
        session.verify = False

        storage_client = storage.Client(
            project=os.environ.get("project_name"),
            _http=session
        )
        bucket = storage_client.get_bucket(os.environ.get("bucket_name"))
        blob = bucket.get_blob(os.environ.get("private_key_file"))
        file = blob.download_as_string()
        return file
    except Exception as error:
        print("error:: ", error)

Mac系统专属排查方案

多数情况下Mac出现该SSL报错不是防火墙拦截,是Python未安装系统根证书导致的,可先尝试执行以下命令修复,无需关闭SSL即可解决问题:

  1. 如果是Python官网下载安装的版本,直接运行对应版本的证书安装脚本:
# 把3.x替换为你实际使用的Python版本,比如3.9、3.10
/Applications/Python\ 3.x/Install\ Certificates.command
  1. 如果是Homebrew安装的Python,执行以下命令更新根证书:
brew install ca-certificates

内容的提问来源于stack exchange,提问作者Saurabh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 04:45:01