什么是Acme.sh
Acme.sh是 Shell(Unix shell)语言编写的 ACME 协议客户端。
只需一个脚本即可自动颁发、更新和安装您的证书。
简单易用 堪称神器 👍
开源仓库:https://github.com/acmesh-official/acme.sh
安装Acme.sh
安装也是非常简单 一行命令即可 默认安装在:~/.acme.sh/
目录下
1
2
|
curl https://get.acme.sh | sh # 安装
source ~/.bashrc # 应用环境变量
|
使用Acme.sh申请证书
设置CA账号
下方 12345678@qq.com 更换为自己邮箱
1
|
acme.sh --register-account -m 12345678@qq.com --server zerossl
|
阿里云
AK、AS 获取
1.打开AccessKey管理
2.使用子用户 AccessKey
3.创建子用户
4.获取到 AS、AK
添加完用户可以看到这个列表 先复制出来备用
4.用户授权
然后点击账号 点击权限管理 按照如下配置权限
申请证书
domain.com
更换为要申请证书的域名 可以一次申请多个
将前一步骤中申请的 AccessKey ID、AccessKey Secret 替换下方的 环境变量 中
执行如下命令 耐心等待即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
export Ali_Key="" # AccessKey ID
export Ali_Secret="" # AccessKey Secret
# 申请证书到默认位置 domain.com 换成你的域名
acme.sh --issue \
--dns dns_ali \
-d domain.cn \
-d *.domain.cn
# 指定证书位置
acme.sh --issue \
--dns dns_ali \
--key-file /home/jwinks/ssl/domain.key \
--fullchain-file /home/jwinks/ssl/domain.pem \
-d domain.cn \
-d *.domain.cn
--reloadcmd "docker restart nginx" # 申请后指定命令 比如可以重启nginx、caddy等web容器 也可以不写
|
CloudFlare
CloudFlare API KEY 获取
生成地址:https://dash.cloudflare.com/profile/api-tokens 生成后复制备用
申请证书
domain.com
更换为要申请证书的域名 可以一次申请多个
将前一步骤中申请的 Global API Key、邮箱 替换下方的 环境变量 中
执行如下命令 耐心等待即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
export CF_Key="" # Global API Key
export CF_Email="" # 邮箱
# 申请证书到默认位置 domain.com 换成你的域名
acme.sh --issue \
--dns dns_cf \
-d domain.cn \
-d *.domain.cn
# 指定证书位置
acme.sh --issue \
--dns dns_cf \
--key-file /home/jwinks/ssl/domain.key \
--fullchain-file /home/jwinks/ssl/domain.pem \
-d domain.cn \
-d *.domain.cn
--reloadcmd "docker restart nginx" # 申请后指定命令 比如可以重启nginx、caddy等web容器 也可以不写
|
申请结果
如下图输出则 申请成功 🎉 🎉
最后输出的是绿色部分是 证书的目录 一般都在安装 acme.sh 的目录下
更新证书
手动更新
执行以下命令可以手动申请证书 我这里刚申请的 它自动跳过申请了
1
|
"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"
|
自动更新
在申请证书的时候 acme.sh
默认会通过 crontab
设置定时任务 一般不需要手动设置
1
2
3
4
5
|
# 查看定时任务
crontab -e
# 如没有定时任务 可将此代码加入
50 15 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
|