Navicat自动化任务SSL失败主因是证书过期,需优先验证CA证书有效期(openssl x509 -in /path/to/ca.pem -noout -dates),并检查任务独立保存的连接快照中SSL配置及证书路径是否更新,服务端证书过期亦会导致所有任务集体失联。

Navicat自动化任务突然失败,先查证书有效期
SSL证书过期不会让Navicat界面报错,但会静默中断计划任务(如定时备份、数据同步),表现为任务状态卡在“正在运行”或直接标记为“失败”,日志里却无明确错误。别急着重配连接,先验证证书是否真的过期:openssl x509 -in /path/to/ca.pem -noout -dates(替换成你连接中实际配置的CA证书路径)。如果notAfter时间早于2026-10-20,基本就是它了。
自动化任务用的是哪个连接配置?别被UI骗了
Navicat的“自动化任务”不继承当前打开连接的设置,而是独立保存一份连接快照。即使你已更新主连接里的SSL证书路径,任务仍用旧快照——这是最常被忽略的点。
- 右键你的自动化任务 → “编辑任务” → 点开“连接”页签 → 检查“使用SSL”是否仍勾选,且
CA证书字段路径是否指向已更新的证书文件(不是server.crt,也不是空) - 若路径是相对路径(如
./certs/ca.pem),确认该路径相对于Navicat安装目录还是任务保存目录;建议一律改用绝对路径,避免迁移或升级后失效 - 任务里若勾选了“允许无效主机名”,它会跳过域名校验,但**不会跳过证书过期校验**——过期了照样失败
任务日志里看不到SSL错误?手动触发+重定向输出
Navicat默认的任务日志只记录成功/失败标记,不打印底层SSL握手细节。要看到真实原因,得绕过GUI:
- 找到任务对应的
.bat或.sh脚本(通常在~/.navicat/automation/或%APPDATA%\PremiumSoft\Navicat\automation\下) - 在命令末尾追加
> task_debug.log 2>&1,然后手动运行该脚本 - 查看
task_debug.log,搜索ssl handshake failed、certificate has expired或X509_V_ERR_CERT_HAS_EXPIRED
MySQL/SQL Server/ClickHouse服务端证书也得同步更新
Navicat任务失败,有时问题不在客户端证书,而在服务端证书本身过期。尤其当多个任务连同一台服务器时,症状高度一致:
- 对MySQL:登录服务器执行
mysql -u root -e "SHOW VARIABLES LIKE 'have_ssl';",确认开启后,再查openssl x509 -in /etc/mysql/server.crt -noout -dates - 对SQL Server:打开SQL Server配置管理器 → Protocols for [实例名] → SSL Certificate下拉框是否仍显示已过期的证书名称
- 对ClickHouse:检查
/etc/clickhouse-server/config.xml中certificateFile指向的文件,用openssl命令同样验证
服务端证书一过期,所有依赖它的Navicat任务都会集体失联,和客户端配置无关。更新后必须重启对应服务(不是reload),否则新证书不加载。


















