acme.sh 自动获取证书

acme.sh 是在 GitHub 上一个开源的比较轻量好用的自动获取证书的脚本。

快速入门

下载 acme.sh 安装包

curl https://get.acme.sh | sh

如果上面命令不能出现网络问题可以直接 git clone 仓库或直接下载压缩包进行安装

git clone git@github.com:acmesh-official/acme.sh.git
cd acme.sh && ./acme.sh install

上面的安装会自动生成一个定时任务可以使用 crontab -l 命令查看

安装完成后要自行重启命令行,或者重新加载一下 .bashrc 文件(source ~/.bashrc)就可以使用 acme.sh -h 命令了

注册或登录 zerossl 账号

acme.sh  --register-account  -m xxx.com --server zerossl

这里也可以使用

使用 http 方式

这种方式仅支持单个域名不支持泛域名

acme.sh\
   --issue  -d 'on-u.cn'\
   --nginx on-u.cn.conf\
   --key-file ssl.key\
   --fullchain-file ssl.pem

将 证书需要执行配置到 nginx 的配置文件或其他 即可

使用 DNS 方式

这种方式支持泛域名和单域名

如果需要全自动需要配置各个厂商提供的验证方式目前支持厂商可以在 这里 查看。

这里将以 阿里云 为例。

  1. 在阿里云后台创建子账号并授予 api 访问权限

  2. 在权限管理授予下列权限

    1. 管理HTTPDNS的权限

    2. 管理云解析(DNS)的权限

  3. 将获取到的 AccessKey 和 Secret 写到 acme.sh.env 配置文件里面

vim /root/.acme.sh/acme.sh.env
export LE_WORKING_DIR="/root/.acme.sh"
alias acme.sh="/root/.acme.sh/acme.sh"
export Ali_Key="*****“
export Ali_Secret=”*******"
  1. 最后再 source ~/.bashrc 即可。

  2. 上面已经将 DNS 配置完成了然后只要申请证书即可。

acme.sh\
   --issue  -d '*.on-u.cn'\
   --dns dns_ali\
   --key-file *.on-u.cn.key\
   --fullchain-file *.on-u.cn.pem
  1. 将 证书需要执行配置到 nginx 的配置文件或其他 即可

常用命令

查看证书

acme.sh list

移除证书

acme.sh remove on-u.cn

手动更新所有证书

acme.sh cron

更新

acme.sh upgrade

卸载

acme.sh uninstall