From:https://shiping.date/82.html

前言:之前写过:使用acme.sh脚本申请证书,这种方法使用的是cloudflare global api全局令牌,此令牌权限比较大,对于申请ssl证书来说有点大材小用,也存在一些不安全性,好在acme.sh脚本作者支持了使用局部令牌申请证书。

本文主要以Debian10为例,介绍使用新的cloudflare api令牌来申请证书,免费域名已不受cloudflare此种方式来申请证书,请使用付费域名。

一、安装配置acme.sh脚本

root用户ssh登陆到主机,使用下面命令安装配置脚本:

二、配置Cloudflare局部令牌

2.1 创建令牌

根据acme.sh脚本作者提供的文档:使用新的cloudflare api令牌,需要新创建此令牌方可使用:

创建区域API令牌.png
使用模板.png
令牌摘要.png

依照上述图片设置即可,添加区域-DNS-编辑区域-区域-读取权限,区域资源里面选择包括-账户的所有区域-你的账户

创建令牌.png

配置好以后,点击创建令牌,注意此令牌token只会出现一次,切记保存,切记保存,切记保存!!!

2.2 获取账户ID和区域ID

根据acme.sh文档,申请证书可能还需要提供两个ID,其中账户ID必须,区域ID可有可无,根据下图方法获取此两个ID:

选中相应域名.png

下拉,找到API区域:

区域ID.png

至此,即准备好了申请证书需要的材料:

三、申请配置证书

3.1 申请证书

假定你的域名是example.com,执行下面命令申请证书,非root用户也可执行:

3.2 安装证书到指定位置

假定linux主机里已有/etc/ssl目录,现在要把证书和key安装到此目录下,那么执行下面的命令即可:

说明:脚本更新完证书后,会自动依据上面指定的绝对路径将证书和key安装到指定位置,并根据--reloadcmd执行相应的操作。

3.3 证书更新

letsencrypt申请到的证书有效期是90天,脚本每60天会对证书进行更新,你也可以手动强制更新:

参考链接: