前言

什么是AllinSSL?

AllinSSL是开源免费的 SSL 证书自动化管理平台,可实现一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,支持跨云环境,告别繁琐配置和高昂费用。

什么是雷池WAF?

雷池WAF是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。

雷池通过反向代理,过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入XSS代码注入命令注入CRLF 注入ldap 注入xpath 注入RCEXXESSRF路径遍历后门暴力破解CC爬虫 等攻击。

安装AllinSSL

使用二进制安装命令 (推荐)

1
curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl

备用安装命令

1
curl -sSO https://cnb.cool/allinssl/install.sh/-/git/raw/main/install_allinssl.sh && 

使用Docker部署

使用Docker部署时,证书保存路径为AllinSSL所在Docker文件夹内。

直接复制以下命令安装,用户名:allinssl 密码:allinssldocker 安全入口:allinssl。可自行更改

1
2
3
4
5
6
7
8
docker run -itd \
--name allinssl \
-p 7979:8888 \
-v /www/allinssl/data:/www/allinssl/data \
-e ALLINSSL_USER=allinssl \
-e ALLINSSL_PWD=allinssldocker \
-e ALLINSSL_URL=allinssl \
allinssl/allinssl:latest

或使用宝塔面板进行安装,在宝塔面板Docker页搜索AllinSSL,自行修改端口、用户名、密码、安全入口后安装即可。由于操作简单,为节约大家的流量和节省服务器资源,这里不再放图和过多赘述。

配置雷池

上传一张证书

在雷池WAF主界面——通用设置——防护配置——证书管理中的添加证书里上传一张证书

获取证书ID

在通用设置——控制台管理——雷池控制台证书中找到你刚才上传的证书ID

获取证书路径

进入雷池证书目录/data/safeline/resources/nginx/certs,找到你的证书

证书为cert_ + 你刚刚上传的证书ID .crt和.key

设置AllinSSL

配置DNS

在AllinSSL面板中,选择授权API管理,添加你的DNS提供商给你的公私钥,并点击确认

配置通知

如果你有通知需求的话,可以配置通知

在AllinSSL面板中,选择设置,选择告警通知,并点击确认

新建自动化部署工作流

在AllinSSL面板中,选择自动化部署,选择添加自动化部署,模板自由选择,并点击确认

设置申请证书流程

点击申请证书设置流程并配置

  • 域名:以逗号分隔,没有空格,如*.example.com,example.com
  • 证书CA:Let's Encrypt除外的CA机构需要添加CA授权
  • 邮件:可随意填写

我实测境外服务器如中国香港使用阿里云Key时,在本地预检查时无法连接上阿里云服务器,会导致预检查失败和证书申请失败,好几个证书申请软件都是这样。需要在高级设置中勾选跳过本地预检查

设置部署流程

点击部署流程,点击本地部署并点击下一步

由于我们在前面看到,需要在雷池中需要部署的证书ID2。因此:

  • 证书路径为:/data/safeline/resources/nginx/certs/cert_2.crt

  • 证书私钥为:/data/safeline/resources/nginx/certs/cert_2.key

雷池WAF会每一小时拉取一次,你也可以添加后置命令重启雷池容器,使雷池立即拉取

其他需要更改的地方

其他需要更改的地方有通知,其他无特别需要的地方。设置非常简单,这里不再过多赘述。

执行工作流

保存工作流后,点击执行开始申请一张证书

此时状态会变成正在执行

点击详情可以看到执行进度。我忘记配邮件通知了,所以最后的状态变成了失败,懒得重新弄了

此时雷池目录对应的证书也被更新

此时,我们在雷池WAF实现了证书的自动续签