使用 1panel 自动申请和续签通配符证书
起因
自阿里云宣布不再提供一年期的免费证书后,腾讯云在今年4月25日起也不再提供一年期的免费证书。我的域名主要在 dnspod,所以也因此会受到影响。
好在服务器面板 1panel 提供了自动申请证书服务,虽然同样只有三个月的有效期,但是优点有二:
一是证书为通配符证书,无需逐个申请;
二是面板支持自动续签,大概可以算得上是一劳永逸。
开始折腾
其实整个过程也不算折腾,甚至不用文档,按照流程摸索着来,一次就能申请成功。
创建 Acme 账户
按照如下顺序点击“Acme账户”,输入你自己的邮箱。账号类型和密钥算法我保持了默认,这可能不是最优解。
提示:虽然不会验证邮箱,但是建议填写自己真实的邮箱地址。
创建腾讯云子账户
由于 dnspod 的 API 即将废弃,所以域名在 dnspod 的可以选择腾讯云。
在获取Secret ID
和Secret Key
之前,我强烈建议创建一个腾讯云子账户,并且设定用户组和权限,尽可能避免不必要的风险。
创建子账户可以参考腾讯云官方的文档,这里我分享一下的配置的策略。
点击这里进入到腾讯云的访问管理控制台,点击“新建自定义策略”,选择“按策略语法创建”,选择“空白模板”,填写以下内容,名称自拟:
{ |
当然,如果你不喜欢json
,也可以选择“按产品功能或项目权限创建”,只不过这样稍微繁杂一点。
创建完成之后,还需要把它关联到用户/组/角色。
最后,点击左侧的“用户”,选择“用户列表”,点击自己创建的子账户,点击 API 密钥,新建一个密钥即可。
注意SecretKey
仅支持在创建时查看,请及时保存SecretKey
。
创建 DNS 账户
回到 1panel 中,点击“DNS账户”,再创建账户,输入刚才获取的Secret ID
和Secret Key
就可以了。
申请证书
点击“申请证书”,参考图片填写:
如果你要申请的证书是特定的网站,可以选择“从网站中获取”,不过我觉得通配符证书更方便,所以选择了前者。为了能一定程度上“一劳永逸”,记得勾选上“自动续签”。
关于“推送证书到本地目录”我没勾选,因为我的服务器上不止一个网站目录,所以我是申请成功之后在“网站”的“HTTPS”里,手动选择了申请的通配符证书。
按照上述图片填写完成后,保存并点击申请,然后就可以看到申请日志:
最后
前面也说过,这个过程其实并不算折腾。但是由于 1panel 是明文保存的Secret ID
和Secret Key
,在权限策略和安全性问题上我纠结了很久,最终决定只赋予最少必要权限。
此外,由于我使用的 CDN 支持自动续签,所以我无需把服务器申请的证书推送到 CDN 那边,也给我节省了一些时间。
当然,如果对于上述的权限配置之类的有不同看法,欢迎赐教。