N8N系列:新手课程,本地 N8N 不安全?Windows 下 HTTPS 配置指南,新手也能看懂
| 我是龙须草,深耕软硬件技术开发与管理,产品架构师; 一个相信“工具为人服务”的践行者,链接有缘之人,共探新可能。 |
对于在 Windows 系统用 Node.js 本地部署 N8N 的新手来说,默认的 HTTP 访问虽然能满足基础操作,但存在数据传输不安全、部分场景(如调用需 HTTPS 协议的 API、对接第三方服务)无法兼容的问题。
因此,将本地 N8N 的访问协议从 HTTP 升级为 HTTPS,是保障数据安全、拓展功能使用场景的关键一步。
本文专为新手设计,聚焦 Windows 环境下的实操需求,核心分享将本地 N8N 切换为 HTTPS 访问的方法。
需要提前明确的是:无论选择哪种方法,SSL 证书都是绕不开的核心前提—— 只有获取有效的 SSL 证书,才能完成后续的协议配置与访问升级。
下面先从 “如何获取 SSL 证书” 开始,一步步带你实现本地 N8N 的 HTTPS 安全访问。
如果还没有本地部署N8N的,可以参考文章:
N8N系列:入门级,快速上手 N8N, 5 分钟本地部署的实操教程
一、获取 SSL 证书
1、有真实的域名
以下是你真的有自己的域名,需要申请证书的情况,以下是具体步骤:
关于 SSL 证书
-
有效的 SSL 证书文件(通常是 .pem 格式)
-
可以通过 Let's Encrypt 等服务获取免费证书
-
证书通常包含两个文件:证书文件和私钥文件
1.1 安装 Certbot
找一个Linux系统:不管是真的Linux、还是虚拟机Linux、还是Window的WSL
-
使用 WSL(Windows Subsystem for Linux):
在 Windows 控制面板中,进入 “程序”>“添加或删除 Windows 功能”,勾选 “适用于 Linux 的 Windows 子系统”,点击确定进行安装。然后打开 Microsoft Store,搜索并安装所需的 Linux 发行版,如 Ubuntu。
安装完成后,打开 Linux 终端,输入:
sudo apt update && sudo apt upgrade -y
更新系统,再输入:
sudo snap install core; sudo snap refresh core
和:
sudo snap install --classic certbot
安装完成 Certbot。
1.2 生成 SSL 证书
输入命令
sudo certbot certonly --standalone --preferred-challenges http -d example.com
将 example.com 替换为实际域名, example.com是不允许申请的,example.com 是一个被互联网标准保留的域名(用于文档示例),Let's Encrypt 的政策禁止为这类保留域名颁发证书。
sudo certbot certonly --standalone --preferred-challenges http -d n8n.mydomain.com
更改为你的实际域名,就可以生成 SSL 证书了。
2、没有真实的域名
对于本地测试环境(使用假域名或本地地址),不需要向 Let's Encrypt 申请真实证书,可以使用自签名证书或工具生成测试证书,最简单的方法是使用 mkcert 工具,步骤如下:
使用 mkcert 生成本地测试证书(支持假域名)
mkcert 是一个专门用于生成本地可信证书的工具,无需真实域名和公网 IP,适合本地开发 / 测试。
2.1 安装 mkcert
-
Windows 系统:
-
访问 mkcert GitHub Releases ,下载最新的 Windows 版本(如 mkcert-v1.4.4-windows-amd64.exe )
-
将下载的文件重命名为 mkcert.exe ,放到C:\Windows\System32 目录(或添加到系统环境变量 Path 中)
-
WSL/Linux 系统:
# 安装mkcert
sudo apt install libnss3-tools # 依赖
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64
chmod +x mkcert-v1.4.4-linux-amd64
sudo mv mkcert-v1.4.4-linux-amd64 /usr/local/bin/mkcert
-
CentOS 系统:
mkcert 需要 nss-tools 依赖包,先通过 yum 安装:bash
# CentOS 7
sudo yum install -y nss-tools
# CentOS 8 / Rocky Linux 8
sudo dnf install -y nss-tools
下载 mkcert 二进制文件
从 GitHub Releases 下载适合 Linux 的版本:
# 下载最新版本(当前为v1.4.4,可根据实际更新版本号)
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64

设置可执行权限并移动到系统路径
# 赋予执行权限
chmod +x mkcert-v1.4.4-linux-amd64
# 移动到系统可执行目录(无需每次输入完整路径)
sudo mv mkcert-v1.4.4-linux-amd64 /usr/local/bin/mkcert

验证安装是否成功
mkcert --version
如果输出类似 v1.4.4 的版本号,说明安装成功。
2.2 生成本地 CA 根证书(信任证书)
在命令行(Windows 终端 / PowerShell 或 WSL 或 终端)中执行:
mkcert -install
这会生成并安装一个本地根证书。

这会生成并安装一个本地根证书,让你的系统信任后续生成的所有证书(避免浏览器提示 “不安全”)。
通过下面的命令查看根证书的保存位置:
mkcert -CAROOT

找到根证书所在的位置,并下载下来:

将根证书文件后缀更改为:crt

然后双击安装证书。

这里可以看你自己的情况选择:

然后点击下一步,选择存放位置(默认就好),接下来点击完成就导入了根证书。
这里一定注意:让证书生效
完全关闭 Chrome:必须关闭所有 Chrome 窗口(包括后台进程),仅关闭标签页无效;
重新打开 Chrome,访问 https://n8n.local,地址栏会显示「安全锁」图标,不再提示 “非安全链接”。
2.3 为假域名生成证书
假设你用 n8n.local 作为本地假域名(可自定义,如 my-n8n.test ),执行:
# 生成证书(替换为你的假域名)
mkcert n8n.local "*.n8n.local" localhost 127.0.0.1
执行后会生成两个文件:
-
n8n.local+3.pem (证书文件)
-
n8n.local+3-key.pem (私钥文件)

然后找到刚生成的证书,如下图:

下载保存到本地。
二、配置到 n8n 中
以下三种方法任选其一:
1、通过启动配置变量——以上方法测试亲测有效
将生成的证书文件复制到 Windows 的某个目录(如 D:\SSL\ ),然后通过环境变量启动 n8n:powershell
# 设置HTTPS相关环境变量
$env:N8N_PROTOCOL = "https"
$env:N8N_SSL_KEY = "D:/SSL/n8n.local+3-key.pem"
$env:N8N_SSL_CERT = "D:/SSL/n8n.local+3.pem"
$env:N8N_PORT = 443 # 强制指定443端口
# 启动n8n(无需--config参数)
n8n start

2、使用配置文件(亲测未通过,也列出来,避免踩坑)
创建一个 config.json 文件:n8n的HTTPS配置文件V1创建时间:00:41然后使用该配置文件启动:
n8n start --config=config.json
{
"protocol": "https",
"sslKey": "/path/to/your/private-key.pem",
"sslCert": "/path/to/your/certificate.pem",
"port": 443 // HTTPS默认端口
}
将该文件放置在:C:\Users\你的用户名\.n8n\config.json
{
"protocol": "https",
"sslKey": "D:/SSL/n8n.local+3-key.pem",
"sslCert": "D:/SSL/n8n.local+3.pem",
"port": 443
}
3、使用 PM2 进行进程管理(生产环境推荐,未亲测)
如果使用 PM2 管理 n8n 进程,可以创建一个 ecosystem.config.js 文件:n8n的PM2配置文件,然后启动:
pm2 start ecosystem.config.js
module.exports = {
apps: [{
name: 'n8n',
script: 'n8n',
args: 'start',
env: {
N8N_PROTOCOL: 'https',
N8N_SSL_KEY: '/path/to/your/private-key.pem',
N8N_SSL_CERT: '/path/to/your/certificate.pem',
PORT: 443
}
}]
};
三、验证配置
启动后,通过 https://n8n.local 访问 n8n,如果配置正确,应该能看到安全的 HTTPS 连接。
如果还是提示:无法访问此网站,通过:ping n8n.local,提示以下问题:
![]()
还需要修改以下:
-
用管理员权限打开 C:\Windows\System32\drivers\etc\hosts
-
确保添加的行格式正确(无注释、无多余空格):
127.0.0.1 n8n.local
-
保存后关闭文件,重新执行 ping n8n.local ,直到显示正确解析。

再次访问: https://n8n.local/ ,就可以正常了

或者直接输入IP: https://192.168.10.66

这时候可以看到使用IP提示:不安全的链接,核心原因是 mkcert 生成的证书仅绑定了 n8n.local 等域名 / 本地地址,并未绑定局域网 IP(192.168.10.66),导致浏览器验证证书时发现 “访问地址与证书绑定的地址不匹配”,从而提示非安全链接。
前面的执行命令是:
mkcert n8n.local "*.n8n.local" localhost 127.0.0.1
这意味着证书中只包含 4 个 “合法地址”:
-
n8n.local(你自定义的域名)
-
*.n8n.local(所有以 n8n.local结尾的子域名,如 test.n8n.local)
-
localhost(本地回环地址的域名形式)
-
127.0.0.1(本地回环 IP)
而 192.168.10.66 并未在列表中,所以当你用 https://192.168.10.66访问时,浏览器会触发 “证书身份验证失败”:→ 浏览器:“证书说地址对不上,无法确认这是安全链接”。
结论:“不是安全的链接” 是自签名证书的正常现象,本质是 “浏览器不认识”,但数据传输本身依然是加密的(和 HTTPS 公网证书的加密强度一样),仅影响 “信任提示”,不影响 n8n 的功能使用。
如果是本地测试,可以使用域名来访问即可;如果是局域网多设备访问,给所有设备装一遍根证书就能消除提示。
到这里,Windows 系统下本地部署 N8N 的 HTTPS 配置流程就全部结束了。
无论是用 mkcert 生成自签证书满足测试需求,还是申请可信证书用于正式场景,核心都是通过配置环境变量或修改启动命令,让 N8N 识别并启用 SSL 证书 —— 只要跟着步骤操作,新手也能顺利完成从 HTTP 到 HTTPS 的升级。
开启 HTTPS 后,你不仅能保障本地 N8N 数据传输的安全性,还能正常对接要求 “HTTPS 协议” 的第三方 API 或服务,进一步拓展自动化工作流的使用场景。
如果后续遇到证书过期、配置失效等问题,只需重新替换证书文件或检查启动参数,就能快速恢复 HTTPS 访问。
要是你在配置过程中卡在某个环节,比如 mkcert 命令报错、证书路径识别失败,都可以随时交流。
以上就是今天的分享。
希望对你有帮助。
本文适合所有正在尝试或计划使用N8N进行开发的朋友。
技术可以变,但底层逻辑永远重要。
如对你有帮助,请关注我,持续分享给懂得思考的您。
