长亭百川云

长亭百川云

技术讨论长亭漏洞情报库IP 威胁情报SLA在线工具
热门产品
雷池 WAF 社区版
IP 威胁情报
网站安全监测
百川漏扫服务
云堡垒机
百川云
技术文档
开发工具
长亭漏洞情报库
网安百科
安全社区
CT STACK 安全社区
雷池社区版
XRAY 扫描工具
长亭科技
长亭科技官网
万众合作伙伴商城
长亭 BBS 论坛
友情链接
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备2024055124号-2

长亭百川云

热门应用
查看更多
雷池 WAF 社区版
IP 威胁情报
网站安全监测
SSL 证书服务
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/952d39f311aa1c4c23f32968b7cd45a1.png
雷池 WAF 社区版
智能语义算法 · 开箱即用 · 高性能高可用性
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/ee8f2918e4d99d17f219cb46ec806fde.png
IP 威胁情报
IP 画像查询 · IP 库订阅 · 4 大应用场景
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/5f3debe40bd86b430564010c75b2cb41.png
网站安全监测
敏感词监控 · 篡改监控 · 恶意链接 · 挂马监控
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/4c6052bcaddaa7698c0257719b76cef2.png
SSL 证书服务
快速颁发 · 证书监控 · 极高性价比 · DV-OV-EV
应用介绍

热门讨论

查看更多

雷池 WAF 9.2.8 版本更新公告

头像

雷池-洋仔

管理员

更新于 4 小时前

更新方式

参考文档 更新雷池

更新内容

优化

  • 调整 syslog 外发攻击日志的内容,本次更新不再外发 Body 字段
    • 优化部分超长 syslog 字段外发被截断情况
  • 黑白名单检测日志列表优化:增加【规则名称】字段
    image.png
# 雷池 WAF
官方公告

0

2

针对ASN进行封禁的需求

头像

ᴊɪᴍᴍʏ ᴋᴍɪ

更新于 11 小时前

能否对ASN进行封禁,这样对于网站后台等业务可以直接对一些IDC以及海外的ASN封禁,而防火墙每周对ASN对应的IP段进行更新即可。

# 雷池 WAF
需求建议

13

5

certd创建自动化流水线使用letsencrypt申请证书并更新雷池waf证书

头像

李慧敏

更新于 18 小时前

certd(一个轻量级 ACME 证书管理工具,支持 Let's Encrypt)创建自动化证书申请与续期的流水线,并自动更新 雷池 WAF(SafeLine/Chaitin 社区版)证书的完整指南。整个流程基于 certd 的 daemon 模式 + post-hook 机制实现自动化(无需 CI/CD 平台,每日自动检查续期)。

前提条件

  • Linux 服务器(推荐 Ubuntu/Debian/CentOS),已安装 Docker(雷池 WAF 部署)。
  • 雷池 WAF 已部署(Docker Compose 方式),证书目录挂载为卷,例如:
    1volumes:
    2  - safeline_nginx_ssl:/opt/safeline/nginx/ssl  # 雷池 Nginx SSL 目录
    默认证书路径:/opt/safeline/nginx/ssl/{domain}.pem 和 {domain}-key.pem。
  • 域名已解析到服务器 IP(HTTP-01 验证需 80 端口开放,或 DNS-01)。
  • root 或 sudo 权限。

步骤 1: 安装 certd

1# 下载最新版(x86_64 Linux)
2curl -Lo certd https://github.com/longyun-cui/certd/releases/latest/download/certd-linux-amd64
3chmod +x certd
4sudo mv certd /usr/local/bin/
5certd version  # 验证

步骤 2: 创建 certd 配置文件

创建 /etc/certd/config.yaml:

1global:
2  email: "your-email@example.com"  # Let's Encrypt 联系邮箱
3  directory: "https://acme-v02.api.letsencrypt.org/directory"  # 生产环境
4  # directory: "https://acme-staging-v02.api.letsencrypt.org/directory"  # 测试环境
5
6certificates:
7  - domain: "waf.example.com"  # 替换为你的域名(支持多域名:domains: [waf.example.com, www.example.com])
8    provider: "nginx"  # 或 "standalone"(需停止 Nginx)、"docker"
9    challenge: "http-01"  # 或 "dns-01"(需配置 DNS API,如阿里云/Cloudflare)
10    # dns-01 示例(可选):
11    # dns:
12    #   provider: "cloudflare"
13    #   api_token: "your-cloudflare-api-token"
14    post-hook: |
15      # 更新雷池 WAF 证书
16      docker cp {{CertFile}} safeline-nginx:/opt/safeline/nginx/ssl/{{EnvName}}.pem
17      docker cp {{KeyFile}} safeline-nginx:/opt/safeline/nginx/ssl/{{EnvName}}-key.pem
18      docker exec safeline-nginx nginx -s reload
19      echo "证书已更新到雷池 WAF: {{Domain}}"
20    # pre-hook(可选,http-01 时停止 Nginx 验证):
21    # pre-hook: "docker stop safeline-nginx"
22    # post-hook: "docker start safeline-nginx"
  • 关键解释:
    • {{CertFile}}、{{KeyFile}}、{{Domain}}、{{EnvName}} 是 certd 模板变量,自动替换。
    • safeline-nginx 是雷池 Nginx 容器的名称(docker ps 查看)。
    • post-hook 在证书申请/续期后自动执行,复制证书并重载 Nginx(无 downtime)。

步骤 3: 测试证书申请

1sudo certd run --config /etc/certd/config.yaml
  • 成功后,证书保存在 /var/lib/certd/{domain}/(fullchain.pem 和 privkey.pem)。
  • 检查雷池:docker exec -it safeline-nginx ls /opt/safeline/nginx/ssl/,确认证书文件存在。
  • 浏览器访问 https://waf.example.com,验证证书。

步骤 4: 设置自动化流水线(Daemon 模式 + Systemd)

certd 支持 daemon 模式,每日自动检查续期(Let's Encrypt 证书有效期 90 天)。

  1. 创建 systemd 服务 /etc/systemd/system/certd.service:

    1[Unit]
    2Description=certd ACME Certificate Manager
    3After=network.target docker.service
    4
    5[Service]
    6Type=simple
    7ExecStart=/usr/local/bin/certd daemon --config /etc/certd/config.yaml
    8Restart=always
    9RestartSec=5
    10
    11[Install]
    12WantedBy=multi-user.target
  2. 启用并启动:

    1sudo systemctl daemon-reload
    2sudo systemctl enable certd
    3sudo systemctl start certd
    4sudo systemctl status certd  # 查看日志
  3. 日志查看:

    1journalctl -u certd -f

步骤 5: 雷池 WAF 配置优化

  • 编辑雷池 Nginx 配置(/opt/safeline/nginx/conf.d/default.conf,容器内):
    ssl_certificate /opt/safeline/nginx/ssl/waf.example.com.pem;
    ssl_certificate_key /opt/safeline/nginx/ssl/waf.example.com-key.pem;
    
  • 重载:docker exec safeline-nginx nginx -t && docker exec safeline-nginx nginx -s reload。
  • 雷池面板(默认 9443 端口)中检查 HTTPS 配置,确保使用新证书。

常见问题排查

问题解决方案
端口 80 被占用 standalone provider + pre/post-hook 停止/启动 Nginx;或 DNS-01。
Docker 卷权限chmod 644 /opt/safeline/nginx/ssl/*.pem(主机卷)。
续期失败检查域名解析、防火墙(ufw allow 80/443);staging 测试。
多域名在 domains: [] 添加,支持通配符 *.example.com(需 DNS-01)。
雷池容器名不对docker ps 确认,替换 safeline-nginx。

监控与扩展

  • 添加 webhook 到 post-hook:curl -X POST https://monitor.example.com/callback -d "cert renewed: {{Domain}}"。
  • cron 备选(无 systemd):0 2 * * * /usr/local/bin/certd run --config /etc/certd/config.yaml。
  • 官方文档:certd GitHub,雷池 GitHub。

此流水线零维护,证书自动续期并无缝更新 WAF。测试通过后上线生产!如果有具体错误日志,提供更多细节我帮 debug。

# SSL 证书
# 雷池 WAF

0

1

4xx拦截统计有误

头像

江宗厚

更新于 19 小时前

39d80637-2413-42c3-985c-fed8dc107e05.png 4xx拦截统计会出现超过100%

# 雷池 WAF

0

1

建议升级postgres数据库版本

头像

time flies

更新于 11 小时前

最新版本9.2.7数据库版本不postgresql15.2,建议升级数据库版本到17,性能更好!

# 雷池 WAF

2

18

雷池社区版自动化更新SSL证书(基于DNS验证)

头像

突突突

更新于 2 天前

前言

从2023年下半年开始,各大云厂商的免费证书陆续从有效期一年变成了有效期三个月,这对广大的个人用户来讲是一件很不好的事情,因为这样就意味着每三个月就需要重新申请一次证书并部署。

雷池虽然自带了一个通过 Let's Encrypt 来申请证书的功能,但只支持申请时长为3个月的免费证书,但也没有自动续签的功能,所以作者就写了一个用于自动化更新雷池SSL证书的工具。

工具介绍

这款工具使用golang编写(go语言写的多了,就没想过用其他语言了),通过 Let's Encrypt 的 DNS-01 challenge 来进行验证并申请新的证书,替换原有的证书来实现自动更新。

目前DNS验证暂时仅支持:腾讯云、 阿里云、 华为云、 西部数码、 雨云,如果有小伙伴使用的是其他的域名服务提供商,欢迎在评论区留言,作者会在收到留言后会进行相应的更新。

项目地址:

github: https://github.com/Wink541/SafelineAPI

个人gitea: https://gitea.doicat.com/duoduo/SafelineAPI

工具使用

1. 下载项目

$ git clone https://github.com/Wink541/SafelineAPI

2. 编译项目

$ cd SafelineAPI
$ go build -o safelineApi ./cmd/safelineApi/main.go

// 可根据不同平台来设定不同的编译环境
$ go env -w GOOS=linux    //编译环境修改为linux,可选: linux/windows/darwin
$ go env -w GOARCH=amd64  //编辑架构修改为amd64,可选: amd64/arm64

3. 配置文件编辑

{
	"SafeLine": {
		"Host": {
			"HostName": "192.168.1.4",
			"Port": "1443"
		},
		"ApiToken": "xxx"
	},
	"ApplyCert": {
		"Days": 30,
		"Email": "xxx",
		"SavePath": "/tmp/ssl",
		"DNSProviderConfig": {
			"DNSProvider": "xxx",
			"TencentCloud": {
				"SecretId": "xxx",
				"SecretKey": "xxx"
			},
			"AliCloud": {
				"AccessKeyId": "xxx",
				"AccessKeySecret": "xxx",
				"RAMRole": "xxx(可选)",
				"STSToken": "xxx(可选)"
			},
			"HuaweiCloud": {
				"AccessKeyId": "xxx",
				"Region": "xxx",
				"SecretAccessKey": "xxx"
			},
			"WestCN": {
				"Username": "xxx",
				"Password": "xxx"
			},
			"RainYun": {
				"ApiKey": "xxx"
			}
		}
	}
}

参数介绍:

  • SafeLine

    • HostName : 雷池管理后台地址。默认为 safeline-mgt 容器IP;

    • Port : 雷池管理后台端口。默认为 1443 ;

    • ApiToken : 雷池接口API Token ,从控制台获取;

  • ApplyCert

    • Days : 过期时间,默认当证书剩余有效期小于该值时,则对证书进行更新;

    • Email : 申请证书时所使用的邮箱;

    • SavePath : 申请证书临时保存位置;

    • DNSProviderConfig : DNS服务提供商配置

      • DNSProvider : 域名服务提供商,可选 TencentCloud/AliCloud/HuaweiCloud/WestCN/RainYun ,下列的相关参数为云服务平台账号的凭据。

执行文件

$ ./safelineApi ./config.json    //<可执行文件路径> <配置文件路径>

计划任务(可选)

0 0 1,31 * * root /opt/safelineApi/safelineApi /opt/safelineApi/config.json > /opt/safelineApi/app.log

工具效果

工具执行前证书有效期如图:

测试环境,过期时间设定为90天

工具执行部分日志如下:

[SUCCESS] 2025/04/15 21:36:07 SafeLine 相关配置检验完成!
[INFO]    2025/04/15 21:36:07 ApplyCert 相关配置检验完成!
[INFO]    2025/04/15 21:36:07 配置检查完毕,即将开始更新证书!
[INFO]    2025/04/15 21:36:07 本次需要更新证书数量有 6 个
2025/04/15 21:36:08 [INFO] acme: Registering account for admin@example.com
2025/04/15 21:36:09 [INFO] [www.doicat.com] acme: Obtaining bundled SAN certificate
2025/04/15 21:36:10 [INFO] [www.doicat.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/xxxxxxxxxx/xxxxxxxxxxxx
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: Could not find solver for: tls-alpn-01
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: Could not find solver for: http-01
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: use dns-01 solver
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: Preparing to solve DNS-01
2025/04/15 21:36:12 [INFO] [www.doicat.com] acme: Trying to solve DNS-01
2025/04/15 21:36:12 [INFO] [www.doicat.com] acme: Checking DNS record propagation. [nameservers=183.60.83.19:53,183.60.82.98:53]
2025/04/15 21:36:14 [INFO] Wait for propagation [timeout: 1m0s, interval: 2s]
2025/04/15 21:36:22 [INFO] [www.doicat.com] The server validated our request
2025/04/15 21:36:22 [INFO] [www.doicat.com] acme: Cleaning DNS-01 challenge
2025/04/15 21:36:24 [INFO] [www.doicat.com] acme: Validations succeeded; requesting certificates
2025/04/15 21:36:27 [INFO] [www.doicat.com] Server responded with a certificate.
[SUCCESS] 2025/04/15 21:36:43 域名 [www.doicat.com] 证书更新成功!

执行后证书更新如下:

结尾

这个简单的项目就到这里了,主要还是为了解决证书更新的问题,文章内容不是很丰富(由于最近学业较繁忙,凭据申请的方法就没有去收集,各位可以上官网查询文档来获取),项目还是有需要完善的地方,有想法的小伙伴可以前往原文 雷池社区版自动化更新SSL证书 留言,在条件允许的情况下会尽力去实现。

# 雷池 WAF
# SSL 证书
技术资料

1

8

IP 威胁情报

查看更多

当前 IP

查看 IP 风险画像
地理信息
ISP
运营商
最后更新时间
-

长亭漏洞情报库

查看更多
东方通应用服务器 EJB 反序列化远程代码执行漏洞
泛微e-cology 前台SQL注入漏洞
用友 U8 Cloud pubsmsservlet 远程代码执行漏洞
Oracle E-Business Suite 远程代码执行漏洞
用友 U8 Cloud NCCloudGatewayServlet 命令执行漏洞
用友 U8 Cloud IPFxxFileService 任意文件上传漏洞
用友 U8 Cloud 文件上传绕过漏洞
Docker Desktop Engine API 未授权访问漏洞
Smartbi 远程代码执行漏洞
Cherry Studio 命令注入漏洞
雷池 WAF 社区版
智能语义算法 · 开箱即用 · 高性能高可用性
应用文档
IP 威胁情报
IP 画像查询 · IP 库订阅 · 4 大应用场景
应用文档
网站安全监测
敏感词监控 · 篡改监控 · 恶意链接 · 挂马监控
应用文档
SSL 证书服务
快速颁发 · 证书监控 · 极高性价比 · DV-OV-EV
应用文档

雷池 WAF 9.2.8 版本更新公告

头像

雷池-洋仔

管理员

更新于 4 小时前

更新方式

参考文档 更新雷池

更新内容

优化

  • 调整 syslog 外发攻击日志的内容,本次更新不再外发 Body 字段
    • 优化部分超长 syslog 字段外发被截断情况
  • 黑白名单检测日志列表优化:增加【规则名称】字段
    image.png
# 雷池 WAF
官方公告

0

2

针对ASN进行封禁的需求

头像

ᴊɪᴍᴍʏ ᴋᴍɪ

更新于 11 小时前

能否对ASN进行封禁,这样对于网站后台等业务可以直接对一些IDC以及海外的ASN封禁,而防火墙每周对ASN对应的IP段进行更新即可。

# 雷池 WAF
需求建议

13

5

certd创建自动化流水线使用letsencrypt申请证书并更新雷池waf证书

头像

李慧敏

更新于 18 小时前

certd(一个轻量级 ACME 证书管理工具,支持 Let's Encrypt)创建自动化证书申请与续期的流水线,并自动更新 雷池 WAF(SafeLine/Chaitin 社区版)证书的完整指南。整个流程基于 certd 的 daemon 模式 + post-hook 机制实现自动化(无需 CI/CD 平台,每日自动检查续期)。

前提条件

  • Linux 服务器(推荐 Ubuntu/Debian/CentOS),已安装 Docker(雷池 WAF 部署)。
  • 雷池 WAF 已部署(Docker Compose 方式),证书目录挂载为卷,例如:
    1volumes:
    2  - safeline_nginx_ssl:/opt/safeline/nginx/ssl  # 雷池 Nginx SSL 目录
    默认证书路径:/opt/safeline/nginx/ssl/{domain}.pem 和 {domain}-key.pem。
  • 域名已解析到服务器 IP(HTTP-01 验证需 80 端口开放,或 DNS-01)。
  • root 或 sudo 权限。

步骤 1: 安装 certd

1# 下载最新版(x86_64 Linux)
2curl -Lo certd https://github.com/longyun-cui/certd/releases/latest/download/certd-linux-amd64
3chmod +x certd
4sudo mv certd /usr/local/bin/
5certd version  # 验证

步骤 2: 创建 certd 配置文件

创建 /etc/certd/config.yaml:

1global:
2  email: "your-email@example.com"  # Let's Encrypt 联系邮箱
3  directory: "https://acme-v02.api.letsencrypt.org/directory"  # 生产环境
4  # directory: "https://acme-staging-v02.api.letsencrypt.org/directory"  # 测试环境
5
6certificates:
7  - domain: "waf.example.com"  # 替换为你的域名(支持多域名:domains: [waf.example.com, www.example.com])
8    provider: "nginx"  # 或 "standalone"(需停止 Nginx)、"docker"
9    challenge: "http-01"  # 或 "dns-01"(需配置 DNS API,如阿里云/Cloudflare)
10    # dns-01 示例(可选):
11    # dns:
12    #   provider: "cloudflare"
13    #   api_token: "your-cloudflare-api-token"
14    post-hook: |
15      # 更新雷池 WAF 证书
16      docker cp {{CertFile}} safeline-nginx:/opt/safeline/nginx/ssl/{{EnvName}}.pem
17      docker cp {{KeyFile}} safeline-nginx:/opt/safeline/nginx/ssl/{{EnvName}}-key.pem
18      docker exec safeline-nginx nginx -s reload
19      echo "证书已更新到雷池 WAF: {{Domain}}"
20    # pre-hook(可选,http-01 时停止 Nginx 验证):
21    # pre-hook: "docker stop safeline-nginx"
22    # post-hook: "docker start safeline-nginx"
  • 关键解释:
    • {{CertFile}}、{{KeyFile}}、{{Domain}}、{{EnvName}} 是 certd 模板变量,自动替换。
    • safeline-nginx 是雷池 Nginx 容器的名称(docker ps 查看)。
    • post-hook 在证书申请/续期后自动执行,复制证书并重载 Nginx(无 downtime)。

步骤 3: 测试证书申请

1sudo certd run --config /etc/certd/config.yaml
  • 成功后,证书保存在 /var/lib/certd/{domain}/(fullchain.pem 和 privkey.pem)。
  • 检查雷池:docker exec -it safeline-nginx ls /opt/safeline/nginx/ssl/,确认证书文件存在。
  • 浏览器访问 https://waf.example.com,验证证书。

步骤 4: 设置自动化流水线(Daemon 模式 + Systemd)

certd 支持 daemon 模式,每日自动检查续期(Let's Encrypt 证书有效期 90 天)。

  1. 创建 systemd 服务 /etc/systemd/system/certd.service:

    1[Unit]
    2Description=certd ACME Certificate Manager
    3After=network.target docker.service
    4
    5[Service]
    6Type=simple
    7ExecStart=/usr/local/bin/certd daemon --config /etc/certd/config.yaml
    8Restart=always
    9RestartSec=5
    10
    11[Install]
    12WantedBy=multi-user.target
  2. 启用并启动:

    1sudo systemctl daemon-reload
    2sudo systemctl enable certd
    3sudo systemctl start certd
    4sudo systemctl status certd  # 查看日志
  3. 日志查看:

    1journalctl -u certd -f

步骤 5: 雷池 WAF 配置优化

  • 编辑雷池 Nginx 配置(/opt/safeline/nginx/conf.d/default.conf,容器内):
    ssl_certificate /opt/safeline/nginx/ssl/waf.example.com.pem;
    ssl_certificate_key /opt/safeline/nginx/ssl/waf.example.com-key.pem;
    
  • 重载:docker exec safeline-nginx nginx -t && docker exec safeline-nginx nginx -s reload。
  • 雷池面板(默认 9443 端口)中检查 HTTPS 配置,确保使用新证书。

常见问题排查

问题解决方案
端口 80 被占用 standalone provider + pre/post-hook 停止/启动 Nginx;或 DNS-01。
Docker 卷权限chmod 644 /opt/safeline/nginx/ssl/*.pem(主机卷)。
续期失败检查域名解析、防火墙(ufw allow 80/443);staging 测试。
多域名在 domains: [] 添加,支持通配符 *.example.com(需 DNS-01)。
雷池容器名不对docker ps 确认,替换 safeline-nginx。

监控与扩展

  • 添加 webhook 到 post-hook:curl -X POST https://monitor.example.com/callback -d "cert renewed: {{Domain}}"。
  • cron 备选(无 systemd):0 2 * * * /usr/local/bin/certd run --config /etc/certd/config.yaml。
  • 官方文档:certd GitHub,雷池 GitHub。

此流水线零维护,证书自动续期并无缝更新 WAF。测试通过后上线生产!如果有具体错误日志,提供更多细节我帮 debug。

# SSL 证书
# 雷池 WAF

0

1

4xx拦截统计有误

头像

江宗厚

更新于 19 小时前

39d80637-2413-42c3-985c-fed8dc107e05.png 4xx拦截统计会出现超过100%

# 雷池 WAF

0

1

建议升级postgres数据库版本

头像

time flies

更新于 11 小时前

最新版本9.2.7数据库版本不postgresql15.2,建议升级数据库版本到17,性能更好!

# 雷池 WAF

2

18

雷池社区版自动化更新SSL证书(基于DNS验证)

头像

突突突

更新于 2 天前

前言

从2023年下半年开始,各大云厂商的免费证书陆续从有效期一年变成了有效期三个月,这对广大的个人用户来讲是一件很不好的事情,因为这样就意味着每三个月就需要重新申请一次证书并部署。

雷池虽然自带了一个通过 Let's Encrypt 来申请证书的功能,但只支持申请时长为3个月的免费证书,但也没有自动续签的功能,所以作者就写了一个用于自动化更新雷池SSL证书的工具。

工具介绍

这款工具使用golang编写(go语言写的多了,就没想过用其他语言了),通过 Let's Encrypt 的 DNS-01 challenge 来进行验证并申请新的证书,替换原有的证书来实现自动更新。

目前DNS验证暂时仅支持:腾讯云、 阿里云、 华为云、 西部数码、 雨云,如果有小伙伴使用的是其他的域名服务提供商,欢迎在评论区留言,作者会在收到留言后会进行相应的更新。

项目地址:

github: https://github.com/Wink541/SafelineAPI

个人gitea: https://gitea.doicat.com/duoduo/SafelineAPI

工具使用

1. 下载项目

$ git clone https://github.com/Wink541/SafelineAPI

2. 编译项目

$ cd SafelineAPI
$ go build -o safelineApi ./cmd/safelineApi/main.go

// 可根据不同平台来设定不同的编译环境
$ go env -w GOOS=linux    //编译环境修改为linux,可选: linux/windows/darwin
$ go env -w GOARCH=amd64  //编辑架构修改为amd64,可选: amd64/arm64

3. 配置文件编辑

{
	"SafeLine": {
		"Host": {
			"HostName": "192.168.1.4",
			"Port": "1443"
		},
		"ApiToken": "xxx"
	},
	"ApplyCert": {
		"Days": 30,
		"Email": "xxx",
		"SavePath": "/tmp/ssl",
		"DNSProviderConfig": {
			"DNSProvider": "xxx",
			"TencentCloud": {
				"SecretId": "xxx",
				"SecretKey": "xxx"
			},
			"AliCloud": {
				"AccessKeyId": "xxx",
				"AccessKeySecret": "xxx",
				"RAMRole": "xxx(可选)",
				"STSToken": "xxx(可选)"
			},
			"HuaweiCloud": {
				"AccessKeyId": "xxx",
				"Region": "xxx",
				"SecretAccessKey": "xxx"
			},
			"WestCN": {
				"Username": "xxx",
				"Password": "xxx"
			},
			"RainYun": {
				"ApiKey": "xxx"
			}
		}
	}
}

参数介绍:

  • SafeLine

    • HostName : 雷池管理后台地址。默认为 safeline-mgt 容器IP;

    • Port : 雷池管理后台端口。默认为 1443 ;

    • ApiToken : 雷池接口API Token ,从控制台获取;

  • ApplyCert

    • Days : 过期时间,默认当证书剩余有效期小于该值时,则对证书进行更新;

    • Email : 申请证书时所使用的邮箱;

    • SavePath : 申请证书临时保存位置;

    • DNSProviderConfig : DNS服务提供商配置

      • DNSProvider : 域名服务提供商,可选 TencentCloud/AliCloud/HuaweiCloud/WestCN/RainYun ,下列的相关参数为云服务平台账号的凭据。

执行文件

$ ./safelineApi ./config.json    //<可执行文件路径> <配置文件路径>

计划任务(可选)

0 0 1,31 * * root /opt/safelineApi/safelineApi /opt/safelineApi/config.json > /opt/safelineApi/app.log

工具效果

工具执行前证书有效期如图:

测试环境,过期时间设定为90天

工具执行部分日志如下:

[SUCCESS] 2025/04/15 21:36:07 SafeLine 相关配置检验完成!
[INFO]    2025/04/15 21:36:07 ApplyCert 相关配置检验完成!
[INFO]    2025/04/15 21:36:07 配置检查完毕,即将开始更新证书!
[INFO]    2025/04/15 21:36:07 本次需要更新证书数量有 6 个
2025/04/15 21:36:08 [INFO] acme: Registering account for admin@example.com
2025/04/15 21:36:09 [INFO] [www.doicat.com] acme: Obtaining bundled SAN certificate
2025/04/15 21:36:10 [INFO] [www.doicat.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/xxxxxxxxxx/xxxxxxxxxxxx
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: Could not find solver for: tls-alpn-01
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: Could not find solver for: http-01
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: use dns-01 solver
2025/04/15 21:36:10 [INFO] [www.doicat.com] acme: Preparing to solve DNS-01
2025/04/15 21:36:12 [INFO] [www.doicat.com] acme: Trying to solve DNS-01
2025/04/15 21:36:12 [INFO] [www.doicat.com] acme: Checking DNS record propagation. [nameservers=183.60.83.19:53,183.60.82.98:53]
2025/04/15 21:36:14 [INFO] Wait for propagation [timeout: 1m0s, interval: 2s]
2025/04/15 21:36:22 [INFO] [www.doicat.com] The server validated our request
2025/04/15 21:36:22 [INFO] [www.doicat.com] acme: Cleaning DNS-01 challenge
2025/04/15 21:36:24 [INFO] [www.doicat.com] acme: Validations succeeded; requesting certificates
2025/04/15 21:36:27 [INFO] [www.doicat.com] Server responded with a certificate.
[SUCCESS] 2025/04/15 21:36:43 域名 [www.doicat.com] 证书更新成功!

执行后证书更新如下:

结尾

这个简单的项目就到这里了,主要还是为了解决证书更新的问题,文章内容不是很丰富(由于最近学业较繁忙,凭据申请的方法就没有去收集,各位可以上官网查询文档来获取),项目还是有需要完善的地方,有想法的小伙伴可以前往原文 雷池社区版自动化更新SSL证书 留言,在条件允许的情况下会尽力去实现。

# 雷池 WAF
# SSL 证书
技术资料

1

8

查看更多