一、安装
参考 acme.sh文档
$ curl https://get.acme.sh | sh
阿里云服务器中上面的方式不能下载到,所以使用下面的方式:
$ curl https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh | INSTALLONLINE=1 sh
使用命令source ~/.bashrc
让alias生效,或者再次执行
$ alias acme.sh=~/.acme.sh/acme.sh
二、添加DNSAPI密钥
我使用阿里云的域名,所以直接先添加阿里云的dnsapi, 登录阿里云控制台-头像-accesskeys, 或者登录后直接打开 链接,添加并获取AccessKeyID
和AccessKeySecret
,存在旧的也可以直接使用。
其他类型的可以参考dnsapi文档
三、生成证书
使用阿里云的dns,所以下面的dns参数是dns_ali
, 例如我们申请zqyu.com
这个域名的泛域名证书
$ export Ali_Key="[参数是上面申请的AccessKeyID]"
$ export Ali_Secret="[参数是上面申请的AccessKeySecret]"
$ acme.sh --issue --dns dns_ali -d zqyu.com -d *.zqyu.com
如果下载失败可以使用 --debug
参数打印更多的信息,例如
$ acme.sh --issue --dns dns_ali -d zqyu.com-d *.zqyu.com --debug
等待证书下载并保存,acme.sh
用到的所有文件都放在路径 ~/.acme.sh/
, 下载的证书也全部放在这里。
四、安装证书
官方文档建议不要直接使用这个目录下的文件,所以使用命令将生成的证书安装到其他的目录。
例如nginx使用的证书,使用下面的命令将证书复制到/etc/letsencrypt/zqyu.com/nginx
目录中
$ acme.sh --install-cert -d zqyu.com \
--key-file /etc/letsencrypt/zqyu.com/nginx/key.pem \
--fullchain-file /etc/letsencrypt/zqyu.com/nginx/cert.pem
nginx中使用证书
ssl_certificate /etc/letsencrypt/zqyu.com/nginx/cert.pem;
ssl_certificate_key /etc/letsencrypt/zqyu.com/nginx/key.pem;
重新加载nginx配置
$ nginx -s reload
五、证书更新
acme.sh
安装时默认添加了一个自动更新证书的定时任务
57 0 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh" > /dev/null
所以证书是可以自动更新了,上面的dnsapi账号信息保存到了~/.acme.sh/account.conf
文件中,安装的目录保存到了~/.acme.sh/zqyu.com/zqyu.com.conf
,自动更新时会读取这些信息。
更新证书之后需要重新加载nginx配置
$ nginx -s reload
可以将命令也加到定时任务里面
57 0 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh" > /dev/null && nginx -s reload
六、 acme.sh
更新
手动更新
$ acme.sh --upgrade
设置自动更新
acme.sh --upgrade --auto-upgrade
取消自动更新
acme.sh --upgrade --auto-upgrade 0
七、 acme.sh
卸载
- 删除文件夹
~/.acme.sh
- 使用
crontab -e
删除生成的定时任务 - 删除别名
unalias acme.sh
- 删除
~/.bashrc
中的. "/root/.acme.sh/acme.sh.env"
网友评论