Navicat连接OceanBase时SSL参数需在「高级」页签勾选「使用SSL连接」后手动指定ca.pem、client-cert.pem、client-key.pem三个本地绝对路径文件;OceanBase服务端需确认OBProxy启用SSL(enable_ssl=true),且Navicat版本≥17.0.5以兼容TLS 1.2+。
Navicat 连接 OceanBase 时 SSL 参数填哪里
navicat 并不原生识别 oceanbase 的 sslmode 或 requiressl 这类 postgresql/mysql 风格参数,它只认自己定义的 ssl 开关和证书路径字段。直接在「高级」页签里勾选「使用 ssl 连接」后,必须手动指定三个文件:ca.pem(ca 证书)、client-cert.pem(客户端证书)、client-key.pem(客户端私钥)。oceanbase 社区版默认不生成 client 端证书,只提供 ca.pem;企业版或自建集群才可能配全三件套。
- 如果 OceanBase 启用了
force_ssl = true,但 Navicat 只传了ca.pem,连接会报错:SSL connection error: Unknown SSL error - Navicat 的「SSL 加密」开关实际等价于 MySQL 协议里的
MYSQL_OPT_SSL_MODE = SSL_MODE_REQUIRED,不校验证书链,只保证传输加密;要校验证书,必须填全三个文件且服务端配置了ssl_verify_server_cert = ON - 证书路径必须是 Navicat 所在机器的本地绝对路径,Windows 上用反斜杠
C:\certs\ca.pem,macOS/Linux 用正斜杠/Users/me/certs/ca.pem,不能用相对路径或 URL
OceanBase 服务端 SSL 是否启用怎么确认
连不上的时候,别急着调 Navicat,先确认服务端真开了 SSL。OceanBase 的 SSL 控制分散在两个地方:OBProxy 和 OBServer。Navicat 默认直连 OBProxy,所以重点看 OBProxy 的配置项:
- 检查
obproxy启动参数中是否含--enable-ssl=true,或者配置文件obproxy.conf里是否有enable_ssl = true - 执行
show proxyconfig like 'enable_ssl';,返回True才算生效;仅设置ssl_key_file和ssl_cert_file不生效 - OBServer 层的
ssl_mode(如REQUIRED)不影响 Navicat 直连 OBProxy 的行为,除非你绕过 OBProxy 直连 OBServer —— 但 Navicat for OceanBase 官方不支持这种模式
Navicat 报错 “SSL handshake failed” 怎么排查
这个错误不是 Navicat 的锅,大概率是证书或协议不匹配。OceanBase 使用的是 OpenSSL 1.1.1+,而 Navicat Windows 版(尤其 16.x 旧版本)自带的 OpenSSL 库较老,握手会失败。
- 升级 Navicat 到 17.0.5 或更高版本,它们已更新底层 SSL 库,兼容 TLS 1.2+ 和 ECDSA 证书
- 检查证书格式:OceanBase 要求 PEM 格式,且
client-key.pem不能带密码(Navicat 不支持解密加密私钥),可用openssl rsa -in key_encrypted.pem -out client-key.pem去密 - 抓包确认协议版本:用 Wireshark 过滤
ssl.handshake.version == 0x0303(TLS 1.2),若看到0x0301(TLS 1.0)被拒绝,说明服务端禁用了旧协议,需升级 Navicat
加密传输开启后性能下降明显怎么办
加了 SSL 后 QPS 掉 15–20%,属于正常现象,但若掉一半以上,说明配置出了问题。
- 确认没误开「双向认证」:只要 OceanBase 没强制要求客户端证书(即未设
require_client_certificate = true),Navicat 就不该填client-cert.pem和client-key.pem;多传这两个文件会触发额外证书验证握手,拖慢连接建立 - Navicat 的「压缩」选项和 SSL 同时开启时,在高并发下可能引发 CPU 暴涨,建议关闭「使用压缩」
- OceanBase 的
ssl_cipher若设为ECDHE-ECDSA-AES256-GCM-SHA384这类高强度套件,老硬件解密慢;生产环境可降级为ECDHE-RSA-AES128-GCM-SHA256,平衡安全与性能
证书链、协议版本、Navicat 版本这三点对不上,SSL 就只是个摆设,看着绿锁,其实连都连不上。










