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 小时前
家庭版 windows WSL2 安装Ubuntu 、并在这基础上部署docker、通过本地代理进行联网
windows·ubuntu·docker
cqwuliu4 小时前
通过nginx+openssl自签名证书部署https应用并解决不安全问题
nginx·安全·https
Azure++6 小时前
Windows配置jar、redis、nginx开机自启
windows·redis·jar
今日说"法"6 小时前
Rust 内存泄漏的检测与防范:超越安全的实践指南
java·安全·rust
非凡ghost7 小时前
批量转双层PDF(可识别各种语言) 中文绿色版
前端·windows·pdf·计算机外设·软件需求
m0_7482402510 小时前
Windows编程+使用C++编写EXE加壳程序
开发语言·c++·windows
ttghgfhhjxkl13 小时前
Windows 系统下 RabbitMQ 延迟插件的安装步骤与常见问题修复
windows·rabbitmq·ruby
非凡ghost15 小时前
Adobe Lightroom安卓版(手机调色软件)绿色版
前端·windows·adobe·智能手机·软件需求
NewCarRen15 小时前
整合STPA、ISO 26262与SOTIF的自动驾驶安全需求推导与验证
人工智能·安全·自动驾驶·预期功能安全