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 系统
  1. 访问 mkcert GitHub Releases,下载最新的 Windows 版本(如 mkcert-v1.4.4-windows-amd64.exe )

  2. 将下载的文件重命名为 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进行开发的朋友。

技术可以变,但底层逻辑永远重要。

如对你有帮助,请关注我,持续分享给懂得思考的您。

相关推荐
吠品4 小时前
企业信任基石OV SSL证书
网络协议·https·ssl
2501_916008895 小时前
全面介绍Fiddler、Wireshark、HttpWatch、SmartSniff和firebug抓包工具功能与使用
android·ios·小程序·https·uni-app·iphone·webview
玉梅小洋5 小时前
Windows 10 Android 构建配置指南
android·windows
九河云6 小时前
5秒开服,你的应用部署还卡在“加载中”吗?
大数据·人工智能·安全·机器学习·华为云
枷锁—sha7 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
桌面运维家8 小时前
vDisk安全启动策略怎么应用?防止恶意引导攻击
安全
我是一只puppy9 小时前
使用AI进行代码审查
javascript·人工智能·git·安全·源代码管理
吠品10 小时前
命令行揭示SSL证书真相
https·github·ssl
迎仔10 小时前
10-网络安全监控与事件响应:数字世界的智能监控与应急系统
网络·安全·web安全
雨中风华12 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos