前言
快毕业了,事情比较多哈,这个月没咋更新文章,不是鸽哈,这就来水一篇
2025年4月13日,关于缩短TLS服务器证书有效期和验证数据重用周期的提案 SC-081v3 获得通过(
从2026年3月起,最大有效期将从当前的398天缩短为200天;2027年3月起缩短至100天;2028年3月起进一步缩短至90天;最终在2029年3月起缩短至47天。
作为个人站长,且不讨论该提案具体能带来多高的安全性,只能尽量适应更频繁的证书更新周期,尽早完善自动化申请与部署流程,以避免频繁过期带来的访问故障。
当然,我使用的免费证书早就是90天的有效期了,一直都是自动化部署更新的,现在也是稳定运行,分享一下组合方案:
准备工作
CNB 账号一个
安装好的 1Panel 面板一个
基本的语文素养
CNB Accelerates Web
本步骤用于加速CA证书申请网络,境外机器请略过
1. 创建CNB账号
打开登录
,使用微信扫码创建账号。
2. 创建组织
根据需要填写组织名创建组织
3. 创建仓库
选择仓库归属组织,填写仓库名称创建仓库
如此处能得到仓库:Anyexyz/Temp/runtime
,记住该 REPO
4. 创建访问令牌
访问
授权范围需要勾选
repo-cnb-trigger
:读写repo-cnb-detail
:只读
其余权限保持默认,点击 创建
。
你会得到这样一个东西:
令牌名:caw
Git Username:cnb
Token:c5Tg9ty0bOTjB1d84aAFA19i2SC
记住此处的 Token
5. 在 1Panel 中创建容器编排
networks:
1panel-network:
external: true
services:
caw:
container_name: caw
image: docker.cnb.cool/anyexyz/cnb-accelerates-web:latest
environment:
- CNB_TOKEN=c5Tg9ty0bOTjB1d84aAFA19i2SC # 将这里的 c5Tg9ty0bOTjB1d84aAFA19i2SC 换成你上面获取到的token
- CNB_REPO=Anyexyz/Temp/runtime # 将这里的 Anyexyz/Temp/runtime 换成你的 REPO
networks:
- 1panel-network
restart: unless-stopped
注意:请确保同时设置CNB_TOKEN和CNB_REPO环境变量,否则程序将无法正常运行。
点击 确认
。
6. 查看运行状态
查看容器日志,如下图即正常启动
Certimate
1. 安装 Certimate
1Panel 应用商店搜索 Certimate
并安装。
安装参数中:HTTP_PROXY
和 HTTPS_PROXY
均填写为 http://caw:3128
,NO_PROXY
填写 172.18.0.0/16,127.0.0.1,localhost
(172.18.0.0/16
为 1panel-network
的子网),如下图:
确认安装。
2. 登陆 Certimate
初始的管理员账号及密码
账号:
admin@certimate.fun
密码:
1234567890
3. 授权管理
点击左侧的 授权管理
,进行配置
添加主机提供商——1Panel
添加 1Panel 面板,名称根据需求填写,服务地址填写 1Panel 面板地址
密钥获取位置:面板设置
- API 接口
- 详情
,如图:
若面板使用了自签 SSL 证书,需要开启 忽略 SSL/TLS 证书错误
。
添加DNS提供商——以腾讯云为例
按需填入自域名所在腾讯云账号的 SecretId
和 SecretKey
,获取办法参考:
其他DNS提供商所需要的凭证以及权限要求参考:
添加证书颁发机构——以Google Trust Services为例
打开 https://console.cloud.google.com/apis/library/publicca.googleapis.com,启用 API
打开该链接后点击 “启用”,随后等待右侧出现“API 已启用” 则可以关闭该页。
打开 “Google Cloud Shell”(在右上角点击激活 CloudShell 图标)。等待分配完成后在 Shell 窗口内输入如下命令:
gcloud beta publicca external-account-keys create
此时会弹出 “为 Cloud Shell 提供授权”,点击授权即可。
执行完成后会返回类似如下输出;注意不要在没有收到 Google 的邮件时执行该命令,会返回命令不存在。
Created an external account key
[b64MacKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
keyId: xxxxxxxxxxxxxxxxxxxxxx]
注意:复制 keyId 时不要把最后的
]
也复制进去了。注意:EAB 授权使用过一次之后,会绑定邮箱,后续再次使用时,要使用相同的邮箱,否则会报错。
得到:
4. 创建工作流
在左侧菜单点击 工作流
,点击 创建工作流
,从标准模版创建
根据需求填写证书配置
选定部署位置
这里的 1Panel 证书 ID
后续可能会更新为直接选择而不是手动填写 ,现阶段需要通过 F12 抓包获取:
可以看到这里的证书 ID 为 7。
根据需求创建推送通知
保存。
5. 测试
发布更改,点击执行测试工作流是否正常。
成功执行。
网站证书也同步更新了。
1Panel
1Panel HTTPS 配置:选择已有证书,存量/自签证书,即可
总结
这里的 CNB Accelerates Web 为 Certimate 提供了证书申请网络的代理,最大程度避免了境内机器由于网络问题而导致的证书申请失败,同时 Certimate 定时更新证书的工作流也能大幅降度运维人员的工作量。
欢迎各位大佬体验。