Stitch同步MongoDB数据时SSL握手报UNKNOWN_PROTOCOL错误如何解决?
问题根因
该报错是Stitch的tap-mongodb v2.0.1组件与源MongoDB实例建立SSL连接时,双方支持的TLS/SSL协议版本不匹配,导致握手失败。
解决步骤
- 核查源MongoDB实例的SSL配置
确认MongoDB服务端是否启用SSL、支持的TLS协议版本范围。你使用的tap-mongodb 2.0.1运行在Python 3.5环境下,默认支持的TLS版本为1.0/1.1,若MongoDB服务端强制要求TLS 1.2及以上版本,或禁用了tap-mongodb默认支持的协议版本,都会触发该错误。 - 调整Stitch数据源配置
进入Stitch控制台的MongoDB数据源配置页面,根据实际场景调整参数:- 若MongoDB无需SSL连接,直接关闭
Use SSL选项即可,需提前确认MongoDB对应端口开放了非SSL访问权限 - 若必须使用SSL,在自定义连接参数中添加指定协议版本的配置:
sslProtocol=TLSv1_2(根据MongoDB实际支持的最高协议版本调整,如TLSv1_1、TLSv1_3),或添加tlsAllowInvalidProtocols=true临时兼容协议差异
- 若MongoDB无需SSL连接,直接关闭
- 排查中间网络设备限制
确认MongoDB服务端与Stitch之间的防火墙、WAF、反向代理等中间设备是否存在SSL协议拦截、版本限制规则,很多企业级安全设备会默认拦截TLS 1.0/1.1这类低版本协议,导致握手失败。 - 本地验证连接参数
在本地搭建Python 3.5环境,安装与tap-mongodb同版本的pymongo依赖,编写测试脚本验证连接参数有效性,确认参数可正常连接MongoDB后再回填到Stitch配置中。
内容的提问来源于stack exchange,提问作者Parag Shahade
相关产品推荐
相关产品推荐

