Featured image of post 证书利器:轻松释放双手,自动获取和更新 SSL 证书

证书利器:轻松释放双手,自动获取和更新 SSL 证书

借助 Acme.sh,轻松实现 SSL 证书的自动获取与更新,彻底释放你的双手。告别繁琐的手动操作,让证书管理变得高效而无忧。无论是个人项目还是企业网站,这个强大的工具将为你提供全面的安全保障,确保你的在线服务始终保持加密状态。

什么是Acme.sh

Acme.sh是 Shell(Unix shell)语言编写的 ACME 协议客户端。 只需一个脚本即可自动颁发、更新和安装您的证书。 简单易用 堪称神器 👍

GitHub Logo 开源仓库: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管理

打开AccessKey管理

2.使用子用户 AccessKey

使用子用户

3.创建子用户

创建子用户(1) 创建子用户(2)

4.获取到 AS、AK

添加完用户可以看到这个列表 先复制出来备用

获取到 AS、AK

4.用户授权

然后点击账号 点击权限管理 按照如下配置权限

用户授权(1) 用户授权(2)

申请证书

domain.com 更换为要申请证书的域名 可以一次申请多个

将前一步骤中申请的 AccessKey IDAccessKey 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 生成后复制备用

CloudFlare API KEY 获取

申请证书

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

定时任务