当前位置: 首页 > news >正文

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进行开发的朋友。

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

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

http://www.dtcms.com/a/553594.html

相关文章:

  • 商业网站建设定位网站空间太小
  • 【计算机基础】之CPU制造
  • 310.力扣LeetCode_ 最小高度树_直径法_DFS
  • 建设电影网站选服务器怎么选贵州安顺做公司网站
  • 小城镇建设的网站中的主要观点个人域名备案查询
  • 互联网站管理工作细则网页qq属于
  • 润商网站建设服务河北住房和城乡建设厅网站驱动
  • 【轨物方案】智控未来,运维无忧——操作机构机械特性物联网软硬件一站式解决方案
  • 【安科瑞解读】母线槽监控:从“盲管”到“智能运维”的跨越式升级
  • 使用goland ide工具,本地调试运行main.go报错,无法断点调试
  • 仓颉语言三方库开发与使用指南(通用仓颉篇)
  • 【互联网产品助理的成长之路(1)】需求设计的大致流程及思考
  • JAVASE速通复习(二)
  • 广州做网站好的公司胶州网站建设 网络推广
  • git提交 关键字介绍 约定式提交
  • vue2 vue3 修改elementUI和elementPlus主题颜色
  • 易班网站建设基础贵阳设计网站建设
  • 【Linux】Linux 权限
  • 食品电子商务网站建设规划书一般网站的宽度是多少
  • Python爬虫实战:美元-人民币汇率历史数据获取与趋势分析
  • android studio创建使用开发打包教程
  • 基于Springboot的影视评论网站的设计与实现58py6238(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
  • 57套思维导图PPT模板合集 培训/头脑风暴/工作规划 可编辑PPTX
  • 项目源码安全审查—密钥硬编码问题
  • 内蒙古城乡住房建设厅网站网站建设及发布的流程
  • Java 大视界 -- Java 大数据机器学习模型在遥感图像土地利用分类中的优化与应用
  • Hutool 全面实战指南:让 Java 开发更“甜”
  • LangChain进阶学习
  • 网站广告图怎么做网站开发的工作制度
  • 关于Delphi的一次吵架