通过Hashicorp Boundary会话连接Databricks Warehouse时出现SSL握手错误
问题描述
尝试通过Hashicorp Boundary会话连接Databricks Warehouse,已在Boundary中创建Databricks Warehouse主机对象并启动连接会话,但在DataGrip中使用指定URL连接时出现SSL握手失败错误。
错误信息
DBMS: SparkSQL (ver. 3.1.1) Case sensitivity: plain=mixed, delimited=exact Driver: DatabricksJDBC (ver. 02.06.36.1062, JDBC4.2) [Databricks][JDBCDriver](500593) Communication link failure. Failed to connect to server. Reason: javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake.
使用的连接URL
jdbc:databricks://127.0.0.1:63771/default;transportMode=http;ssl=1;AuthMech=3;httpPath=/sql/1.0/warehouses/a1b2c3d4e5f6g7h8;
排查与解决方案
- 关闭本地SSL验证:通过Boundary本地端口转发时,代理不会提供Databricks合法SSL证书,
ssl=1会触发验证失败。修改URL参数为ssl=0,或添加sslTrustAllCertificates=1跳过验证。示例URL:jdbc:databricks://127.0.0.1:63771/default;transportMode=http;ssl=0;AuthMech=3;httpPath=/sql/1.0/warehouses/a1b2c3d4e5f6g7h8; - 确认Boundary会话状态:用
boundary sessions list命令检查会话是否正常运行,确保本地端口63771处于监听状态。 - 核对认证配置:AuthMech=3代表Token认证,确认DataGrip中已正确填写Databricks个人访问令牌,且令牌拥有目标Warehouse的访问权限。
- 升级JDBC驱动:当前驱动版本较旧,可能存在兼容性问题,尝试更新到最新版Databricks JDBC驱动。
- 检查本地网络限制:确认本地防火墙未拦截127.0.0.1:63771的流量,关闭可能干扰SSL握手的本地代理工具。
内容的提问来源于stack exchange,提问作者Vinit Khandelwal
相关产品推荐
相关产品推荐

