解决 n8n'secure cookie'报错的三种方法
当你运行 n8n 时,可能会遇到如下提示:
Your n8n server is configured to use a secure cookie, however you are either visiting this via an insecure URL, or using Safari.
这意味着 n8n 启用了安全 Cookie(N8N_SECURE_COOKIE=true),但当前访问不是 HTTPS,或浏览器(如 Safari)拒绝在非安全连接中传输 Cookie。
一、问题原因
n8n 默认要求所有登录 Cookie 通过 HTTPS 传输。
如果你使用的是 http://localhost:5678 或 IP 地址访问,浏览器会拒绝发送 Cookie,从而无法登录。
二、解决方案
方法一:启用 n8n 自带 HTTPS(推荐)
访问地址:
https://localhost:5678
修改启动命令:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e N8N_PROTOCOL=https \
-e N8N_SSL_KEY=/certs/server.key \
-e N8N_SSL_CERT=/certs/server.crt \
-v n8n_data:/home/node/.n8n \
-v ~/n8n/certs:/certs \
docker.n8n.io/n8nio/n8n
生成自签名证书:
mkdir -p ~/n8n/certs
openssl req -x509 -newkey rsa:4096 -keyout ~/n8n/certs/server.key -out ~/n8n/certs/server.crt -days 365 -nodes -subj "/CN=localhost"
🔒 尽管浏览器会提示'自签名证书不受信任',但通信是加密的,适合本地开发。
方法二:改用 localhost 或其他浏览器
如果只是本地测试:
- 使用
http://localhost:5678而不是127.0.0.1 - 或尝试 Chrome / Firefox(Safari 对 Cookie 管理更严格)
方法三:关闭安全 Cookie(仅限本地)
在本地调试时可以关闭安全验证:
export N8N_SECURE_COOKIE=false
n8n start
或在 Docker 中:
-e N8N_SECURE_COOKIE=false
⚠️ 不建议在线上环境中禁用此功能。

