无需nginx反向代理!为docker版n8n配置SSL证书
一、前言:为什么 n8n 需要配置 HTTPS
1、在生产环境中直接暴露 HTTP 存在安全风险(如中间人攻击)。
2、SSL/HTTPS 可保障 Webhook 安全、OAuth2 回调、Webhook 接收方的可信度等。
二、准备工作
1、准备一台安装有 Ubuntu/Debian或者其它linux系统的海外版VPS
2、部署好 Docker环境
三、开始部署
1、更新系统apt软件包
sudo apt update && apt upgrade
2、配置acme.sh环境
curl https://get.acme.sh | sh
sudo apt install socat
echo 'alias acme.sh=~/.acme.sh/acme.sh' | sudo tee -a ~/.bashrc
source .bashrc
acme.sh --set-default-ca --server letsencrypt
3、申请SSL证书(确保80端口是空闲的同时打开防火墙的80端口)
acme.sh --issue --standalone -d example.com
example.com替换成已经绑定了主机公网ip的域名,如果出现表示成功的英文,说明申请成功
4、安装SSL证书
sudo mkdir -p /opt/n8n/ssl
acme.sh --install-cert -d example.com \
--key-file /opt/n8n/ssl/privkey.pem \
--fullchain-file /opt/n8n/ssl/fullchain.pem
sudo chmod 444 /opt/n8n/ssl/privkey.pem
同样的将example.com替换成已经绑定主机公网ip的域名
5、配置并运行docker
sudo docker volume create n8n_data
sudo docker run -it -d --restart always --name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-v /opt/n8n/ssl/fullchain.pem:/home/node/.n8n/fullchain.pem:ro \
-v /opt/n8n/ssl/privkey.pem:/home/node/.n8n/privkey.pem:ro \
-e N8N_PROTOCOL=https \
-e N8N_SSL_KEY=/home/node/.n8n/privkey.pem \
-e N8N_SSL_CERT=/home/node/.n8n/fullchain.pem \
-e N8N_HOST=example.com \
-e N8N_PORT=5678 \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
docker.n8n.io/n8nio/n8n
同样的将example.com替换成已经绑定主机公网ip的域名
四、检查n8n运行情况
开启防火墙的5678端口,在网址栏输入类似https://example.com:5678的网址,不要漏了https://,看能否访问成功。如果失败请使用docker logs id(实际的容器id)查看具体问题。
文章作者:hzstacknote
文章链接:http://localhost:8090/archives/wei-dockerban-de-n8npei-zhi-sslzheng-shu
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!
评论