在OpenWrt上部署雷池safeline并通过Lucky自动续签证书
在服务器上安装好了openwrt后用一键脚本部署雷池是不支持的 我们要离线手动部署
创建雷池目录
mkdir -p "/data/safeline"下载镜像包
cd "/data/safeline"
wget https://demo.waf-ce.chaitin.cn/image.tar.gz -O image.tar.gz下载 compose 编排脚本(修改不使用/etc/loceltime 修复报错)
cd "/data/safeline"
wget -O compose.yaml https://r2.lovelyy.eu.org/raw/backup/safeline/compose.yaml官方
cd "/data/safeline"
wget "https://waf-ce.chaitin.cn/release/latest/compose.yaml"配置 compose 环境变量(注意密码POSTGRES_PASSWORD可以改变 现在是随机字符串)
cd "/data/safeline"
cat >> .env <<EOF
SAFELINE_DIR=$(pwd)
IMAGE_TAG=latest
MGT_PORT=9443
POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)
SUBNET_PREFIX=172.22.222
IMAGE_PREFIX=chaitin
EOF加载容器
cd "/data/safeline"
cat image.tar.gz | gzip -d | docker load启动雷池
cd "/data/safeline"
docker compose up -d替换原来的Tengine配置 可以实现溯源来自Cloudflare连接的真实ip并启用日志
wget -O /data/safeline/resources/nginx/nginx.conf https://alist4.lovelyy.eu.org/d/CloudFlareR2/backup/safeline/nginx.conf?sign=9ca4nzhwf-asxaqMsSXakg0veo40q6fpkymJJW1C7XM=:0
docker exec safeline-tengine nginx -s reload测试XSS注入(在你访问的url后加上)
/?search=<script>alert('XSS')</script>OpenWrt区域的转发一定要开

后台重置下雷池面板的密码
docker exec safeline-mgt resetadmin然后在Lucky申请证书要注意这两个地方 证书名叫做cert_1(一般雷池第一个证书的名称)

映射证书路径和触发脚本也需要修改 这样就能无感自动更新雷池证书

映射路径
/data/safeline/resources/nginx/certs触发脚本
docker exec safeline-tengine nginx -s reload当然 也可以通过API的方式来进行热更新雷池证书
一、获取API Token
在雷池 WAF 的系统设置 ->API Token 来创建一个 API 密钥并保存下来

二、获取ssl证书及密钥
因为是使用文件上传的方式更新 ssl 证书,因此需要在本地保存有 ssl 证书及密钥,这里我使用的是 lucky 的 ACME 证书映射功能。在 lucky->SSL/TLS 证书 -> 修改来映射保存证书到本地

三、定期执行更新脚本--insecure或者-k 参数忽略证书验证
crt=$(sed ":tag;N;s/\n/\\\n/;b tag" /path/to/你的证书)
key=$(sed ":tag;N;s/\n/\\\n/;b tag" /path/to/你的密钥)
curl --location --insecure --request POST "https://你的雷池waf网站/api/open/cert" \
--header "X-SLCE-API-TOKEN: xxxx你的API_TOKENxxxx" \
--header "Content-Type: application/json" \
--data "{
\"manual\": {
\"crt\": \"$crt\",
\"key\": \"$key\"
},
\"type\": 2,
\"id\": 1
}"这里有一个需要注意的这里的 id 为你的证书 ID, 可以在网站证书选择页面查看 ID 号码,0 是自增长,推荐直接指定 ID 好更新
四、利用lucky自动更新证书
lucky 支持证书更新时执行脚本,直接将脚本粘贴到那里即可

升级雷池 删除旧版本未使用的镜像,释放磁盘空间
cd "/data/safeline"
wget https://demo.waf-ce.chaitin.cn/image.tar.gz -O image.tar.gz
docker compose down --remove-orphans
docker image prune --filter="label=maintainer=SafeLine-CE"
docker load -i image.tar.gz
docker compose up -d
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果