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 方式
这种方式支持泛域名和单域名
如果需要全自动需要配置各个厂商提供的验证方式目前支持厂商可以在 这里 查看。
这里将以 阿里云 为例。
在阿里云后台创建子账号并授予 api 访问权限
在权限管理授予下列权限
管理HTTPDNS的权限
管理云解析(DNS)的权限
将获取到的 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=”*******"
最后再
source ~/.bashrc
即可。上面已经将 DNS 配置完成了然后只要申请证书即可。
acme.sh\
--issue -d '*.on-u.cn'\
--dns dns_ali\
--key-file *.on-u.cn.key\
--fullchain-file *.on-u.cn.pem
将 证书需要执行配置到 nginx 的配置文件或其他 即可
常用命令
查看证书
acme.sh list
移除证书
acme.sh remove on-u.cn
手动更新所有证书
acme.sh cron
更新
acme.sh upgrade
卸载
acme.sh uninstall