1. N8N_ENCRYPTION_KEY dùng để làm gì?
n8n có nhiều trường dữ liệu nhạy cảm cần được mã hóa:
-
Password trong nodes (SMTP password, DB password, API secrets…)
-
OAuth2 refresh token / access token
-
Credential tokens
-
JSON Webhooks Secret
-
Biến bí mật của workflow
-
Tất cả thông tin đăng nhập trong tab “Credentials”
Tất cả những thứ này được mã hóa và lưu trong database Postgres.
👉 N8N_ENCRYPTION_KEY = chìa khóa để mã hóa/giải mã dữ liệu “Credentials” trong n8n.
Nếu không set key đúng:
-
Credentials không giải mã được → toàn bộ node kết nối sẽ lỗi.
-
Workflow có credential sẽ fail.
-
OAuth tokens không dùng được.
🔥 2. Tại sao phải là chuỗi 64 ký tự hex?
-
n8n dùng AES-256-GCM để mã hóa credentials.
-
AES-256 cần key dài 32 bytes (256 bit).
-
n8n yêu cầu mã hóa key này dưới dạng hex (mỗi byte → 2 ký tự).
-
Do đó:
32 bytes = 64 ký tự hex
Ví dụ hợp lệ:
⚠️ 3. Điều gì xảy ra nếu đổi key khi hệ thống đang chạy?
❌ Toàn bộ credentials đang lưu → bị vô hiệu hóa (không giải mã được)
❌ Tất cả workflow liên quan đến Credential → lỗi 401/403
❌ OAuth2 refresh token → mất hết
➡ Nếu đổi key = mất sạch Credential.
Vì vậy: KHÔNG BAO GIỜ đổi
N8N_ENCRYPTION_KEYkhi server đã dùng rồi.
Nó giống như thay khóa két sắt trong khi bên trong đã có đồ — mở lại không được.
📌 4. Ngrok hay Cloudflare Tunnel không liên quan
Tên N8N_ENCRYPTION_KEY=Replace_With_Hex_64_Chars_Key_NGROK chỉ là comment / nhãn đặt tên, chứ:
-
Ngrok không dùng encryption key này
-
Cloudflare không dùng key này
-
Key này thuộc về nội bộ của n8n
Đề xuất đổi thành:
🧪 5. Cách tạo key đúng chuẩn (1 lệnh)
Linux / macOS:
Output ví dụ:
Dán vào .env:
📁 6. Khi nào cần tạo key mới?
-
Khi cài một n8n instance mới
-
Khi clone instance sang server mới
-
Khi muốn mỗi instance độc lập ( tốt nhất: mỗi instance 1 key )
KHÔNG BAO GIỜ được thay key nếu DB đã chứa credentials.
📘 7. Tóm tắt dễ hiểu
| Mục đích | Nội dung |
|---|---|
| Chức năng | Mã hóa Credential (password, tokens…) |
| Độ dài | 64 ký tự hex = 32 bytes AES-256 |
| Tác động khi đổi key | Toàn bộ credential không giải mã được → hỏng |
| Ngrok/Cloudflare | Không liên quan |
| Cách tạo | openssl rand -hex 32 |
0 comments:
Post a Comment