1. 安装 acme.sh
安装:
curl https://get.acme.sh | sh
注:将会安装到 ~/.acme.sh/ 目录下,以后所有的配置默认也在这个目录下
设置 alias:
alias acme.sh=~/.acme.sh/acme.sh # .bashrc or .zshrc or .config/fish/fish.
2). 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.
更高级的安装选项请参考: https://github.com/Neilpang/acme.sh/wiki/How-to-install
2. 生成证书
acme.sh 实现了 acme 协议支持的所有验证协议. 一般有两种方式验证: http 和 dns 验证,这里仅介绍 DNS 方式
1. 方式一:使用 token
acme.sh 支持直接使用主流 DNS 提供商的 API 接口来完成域名验证以及一些相关操作
具体 dnsapi 链接
这里以 阿里云 为例:
首先获取你的阿里云API Key: https://ak-console.aliyun.com/#/accesskey
之后在你的终端配置文件中设置:
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
之后直接使用如下命令发起申请:
acme.sh --issue --dns dns_ali -d example.com -d *.example.com
Ali_Key 和 Ali_Secret 将被保存在 ~/.acme.sh/account.conf , 命令中 dns_ali 指明使用 阿里的dns
来生成证书,注意这里第一个域名为顶级域名,后面个为泛域名。
这种方式将自动为你的域名添加一条 txt 解析,验证成功后,这条解析记录会被删除,所以对你来说是无感的,就是要等 120秒。
证书生成成功后,默认保存在 .acme.sh/hostname 中。
若想自定义证书目录,可加上 -w 参数
acme.sh --issue --dns dns_ali -d *.example.com -w /etc/letsencrypt/*.example.com