Windows系统下gRPC根信任证书存储位置及Python gRPC配置问题
Windows下gRPC对接Databricks-Connect过MitM防火墙的解决方案
1. 指定gRPC根证书路径
如果MitM的根证书没被系统信任,直接给gRPC指定证书文件路径最靠谱:
- 把MitM防火墙的根证书导出成PEM格式(存成
mitm-root.crt这类文件名) - 设置系统环境变量
GRPC_DEFAULT_SSL_ROOTS_FILE_PATH,值填证书的绝对路径,比如C:\certs\mitm-root.crt - 重启你的Python运行环境,databricks-connect会自动读取这个环境变量,让gRPC用指定的证书做验证
2. 临时禁用证书验证(仅测试用!)
生产环境绝对不能这么干,会直接暴露安全风险,只适合本地调试:
- 可以通过环境变量绕开:设置
GRPC_SSL_TARGET_NAME_OVERRIDE为Databricks服务器的主机名,同时把MitM证书导入Windows根证书存储(步骤看下面) - 或者用Python代码强行修改gRPC凭据(如果能找到databricks-connect的通道初始化代码):
import grpc creds = grpc.ssl_channel_credentials(root_certificates=None) # 替换databricks-connect内部使用的通道凭据
3. 把MitM证书导入Windows系统根存储
gRPC本来就应该读取Windows的系统根证书,导入步骤:
- 按下Win+R,输入
certmgr.msc打开证书管理器 - 展开受信任的根证书颁发机构 -> 证书
- 右键点所有任务 -> 导入,跟着向导把MitM的根证书(PEM或PFX格式)导进去
- 重启电脑,gRPC应该就能自动信任这个证书了
4. 改databricks-connect配置文件
如果上面的方法都不行,直接改工具的配置:
- 找到
%USERPROFILE%\.databricks-connect目录下的config文件 - 加上一行
ssl_root_certs = C:\path\to\mitm-root.crt,指向你的证书路径
内容的提问来源于stack exchange,提问作者IMarvinTPA
相关产品推荐
相关产品推荐

