嘿,朋友,我是 N8N大学的首席主编。
在自动化这条路上,数据安全永远是第一位的。很多同学在用 n8n 连接远程 MySQL 数据库时,经常会卡在 SSL/TLS 证书配置这一关。看着 n8n 报错提示连接被拒绝或证书无效,确实让人头大。
别担心,今天笔者就手把手带你搞懂 n8n MySQL 节点的 SSL 配置。这篇指南不讲虚的,只解决实际问题,让你的自动化流程既安全又稳定。
为什么你需要关注 SSL 配置?
如果你直接使用公网 IP 连接 MySQL,且未启用 SSL/TLS,你的数据库账号密码、查询数据就像在裸奔,极易被中间人截获。启用 SSL 是最基本的安全防线,也是云数据库(如 AWS RDS、阿里云 RDS)的强制要求。
在 n8n 中配置 SSL,核心在于正确加载证书文件。一旦配置完成,你的数据库连接就会变得安全可靠。
准备工作:证书文件清单
在开始之前,请确保你手头有以下文件。通常,云服务商会提供这些文件下载:
- CA 证书 (CA Certificate):这是验证服务器身份的根证书,通常命名为
ca.pem或ca.crt。 - 客户端证书 (Client Certificate):如果数据库要求双向认证,你需要这个,通常命名为
client-cert.pem。 - 客户端密钥 (Client Key):与客户端证书配对的私钥,通常命名为
client-key.pem。注意:这个文件必须严格保密。
注意: 如果你只是连接普通的云数据库(如 AWS RDS),通常只需要 CA 证书 即可。双向认证(需要客户端证书)在企业级安全要求下才会启用。
核心实操:配置 n8n MySQL 节点
现在进入正题。假设你已经安装了 n8n 并创建了一个新工作流,我们直接在 MySQL 节点中进行配置。
步骤 1:打开 MySQL 节点配置
首先,拖拽一个 MySQL 节点到画布中,并双击打开配置面板。在 "Credentials"(凭据)部分,输入你的数据库主机、端口、数据库名、用户名和密码。
步骤 2:启用 SSL 选项
在凭据配置页面,向下滚动找到 SSL / TLS 部分。这里有一个开关,点击开启它。你会看到几个配置字段,我们需要关注的是 "CA Certificate"(CA 证书)部分。
步骤 3:粘贴证书内容(关键步骤)
这是最容易出错的地方。n8n 的 MySQL 节点通常不支持直接上传文件路径,而是要求你将证书文件的完整文本内容粘贴到对应的文本框中。
- 使用文本编辑器(如 Notepad++、VS Code)打开你的
ca.pem文件。 - 复制文件中的所有内容(包括 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)。
- 回到 n8n 的 CA Certificate 字段,粘贴进去。
如果你的数据库要求双向认证,同样需要将 client-cert.pem 和 client-key.pem 的内容分别粘贴到 "Client Certificate" 和 "Client Key" 字段中。
步骤 4:测试连接
配置完成后,点击右上角的 Save(保存)按钮。然后点击 Test credentials(测试凭据)。如果一切正常,你会看到绿色的连接成功提示。
避坑指南:实战中的常见报错
根据 N8N 大学的实战经验,配置 SSL 时最容易遇到这两个坑:
坑 1:证书格式错误
报错代码: Handshake failed 或 unable to get local issuer certificate。
原因分析: 这通常是因为你粘贴证书时,不小心多复制了空格,或者证书文件本身是二进制格式(.der),而 n8n 需要 PEM 格式(ASCII 文本)。
解决方案: 仔细检查粘贴的内容,确保首尾的 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 完整且没有多余的换行符。如果证书是 .der 格式,请先使用 OpenSSL 转换为 .pem 格式。
坑 2:SNI (Server Name Indication) 问题
有些云数据库在 SSL 握手阶段需要通过 SNI 指定主机名。如果 n8n 默认配置不支持,可能会导致连接失败。
解决方案: 在 n8n 的 MySQL 节点配置中,如果存在 "SSL Secure Connection" 或类似的额外选项,确保勾选。如果依然失败,你可能需要使用 n8n 的 MySQL Advanced 节点,或者在 "Additional Parameters" 中手动添加类似 ssl: {"rejectUnauthorized": true} 的 JSON 配置(具体取决于 n8n 版本和底层驱动)。不过,对于大多数基础场景,只需正确配置 CA 证书即可。
进阶技巧:使用环境变量管理证书
如果你在 Docker 中运行 n8n,且不想每次都在 UI 中粘贴证书,可以考虑使用环境变量。但这通常需要在启动容器时通过挂载卷的方式将证书文件放入容器,然后在 n8n 的 MySQL 凭据中引用文件路径(如果 n8n 版本支持)。
但目前 n8n 的 UI 凭据配置主要还是依赖文本粘贴。为了安全起见,建议定期轮换证书,并确保 n8n 的备份包含这些凭据配置(注意:备份中包含私钥,需加密存储)。
FAQ 问答
Q1: 我的数据库不需要 SSL,可以不配置吗?
虽然技术上可以,但强烈不建议。如果数据库在公网,这是极大的安全风险。即使是内网,启用 SSL 也是最佳实践,能防止内部网络嗅探。
Q2: 证书过期了怎么办?
云服务商通常会定期更新 CA 证书。你需要下载最新的 CA 证书文件,重新按照上述步骤粘贴到 n8n 的 MySQL 凭据配置中,并保存更新。
Q3: 连接 AWS RDS 时具体用哪个文件?
AWS RDS 通常只需要 CA 证书(例如 Amazon RDS CA 公钥)。你可以在 AWS 控制台下载。一般情况下不需要配置客户端证书和密钥,除非你特别配置了双向认证。
总结与资源
配置 n8n MySQL 节点的 SSL/TLS 连接,核心在于正确获取证书文件并以文本形式粘贴到 n8n 凭据配置中。只要格式正确,连接通常都能顺利建立。
安全无小事,配置好 SSL,你的自动化流程才能在安全的轨道上飞驰。如果在配置过程中遇到其他报错,欢迎在 N8N 大学社区发帖交流。
本文由 N8N 大学 (n8ndx.com) 原创,转载请注明出处。