使用acme.sh快速申请泛域名证书并且自动更新
Teriteri • 2020 年 08 月 15 日
前言
Let'sEncrypt可以申请免费的证书,宝塔的SSL就是通过这个申请的。不过宝塔用的是HTTP验证,无法申请泛域名,acme.sh 实现了acme协议, 可以使用API用DNS验证从 Let'sEncrypt 生成免费的泛域名证书,并且自动续期!
安装 acme.sh
非常简单,一条命令全自动安装。curl https://get.acme.sh | sh
使用acme.sh生成证书
这里推荐使用DNS验证生成泛域名证书
我使用的是CloudFlare和Aliyun的DNS,所以使用他们的API。
更多的API可以从官方文档查看
acme.sh API#CF的API
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" #这里都填你自己的
export CF_Email="xxxx@sss.com"
#阿里的API
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" #这里都填你自己的
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
生成证书
同样也是一条命令轻松搞定,注意下方--dns的参数。根据官方文档来~/.acme.sh/acme.sh --issue --dns dns_cf -d moenis.com -d '*.moenis.com'
申请完成后就会提示你证书的存放目录了。
安装证书到WEB服务器
这时证书已经可以使用了。但是官方推荐使用--install-cert的方式调用,而不是直接使用生成完的证书。这个方式的好处是会自动续期,并且自动重载web服务器的证书,我这里贴上了nginx的重载方法。Apache的可以去官方文档查看。
更多使用方法./acme.sh --install-cert -d moenis.com -d '*.moenis.com' \
--key-file /www/cert/moenis/key.pem \
--fullchain-file /www/cert/moenis/cert.pem \
--reloadcmd "service nginx force-reload" \
done
这时证书就已经自动安装到指定目录了版权属于:本文为原创文章,版权归 博主 所有,可随意转载,但请注明出处!
如教程需要更新,或相关链接出现404,请在评论区反馈