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

374 阅读2分钟

原文地址

什么是Acme.sh

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

GitHub Logo 开源仓库:https://github.com/acmesh-official/acme.sh

安装Acme.sh

安装也是非常简单 一行命令即可 默认安装在:~/.acme.sh/ 目录下

curl  https://get.acme.sh | sh # 安装
source ~/.bashrc # 应用环境变量

使用Acme.sh申请证书

设置CA账号

下方 12345678@qq.com 更换为自己邮箱

acme.sh  --register-account  -m 12345678@qq.com --server zerossl

阿里云

AK、AS 获取

1.打开AccessKey管理

打开AccessKey管理

2.使用子用户 AccessKey

iShot_2024-08-16_11.24.38.png

3.创建子用户

iShot_2024-08-16_11.25.08.png

iShot_2024-08-16_11.30.22.png

4.获取到 AS、AK

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

iShot_2024-08-16_11.32.03.png

4.用户授权

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

iShot_2024-08-16_11.33.46.png

iShot_2024-08-16_11.34.27.png

申请证书

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

将前一步骤中申请的 AccessKey IDAccessKey Secret 替换下方的 环境变量 中 执行如下命令 耐心等待即可

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 获取

生成地址:dash.cloudflare.com/profile/api… 生成后复制备用

iShot_2024-08-17_20.20.33.png

申请证书

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

将前一步骤中申请的 Global API Key邮箱 替换下方的 环境变量 中 执行如下命令 耐心等待即可

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 的目录下

iShot_2024-08-16_12.33.05.png

更新证书

手动更新

执行以下命令可以手动申请证书 我这里刚申请的 它自动跳过申请了

"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"

iShot_2024-08-16_12.27.16.png

自动更新

在申请证书的时候 acme.sh 默认会通过 crontab 设置定时任务 一般不需要手动设置

# 查看定时任务
crontab -e

# 如没有定时任务 可将此代码加入
50 15 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

iShot_2024-08-16_12.25.11.png