使用acme.sh申请&自动续期LetsEncrypt免费SSL证书
一、简介
LetsEncrypt是一个免费、自动、开放的证书颁发机构。
acme.sh 实现了 acme 协议, 可以从 LetsEncrypt 生成免费的证书。
本文介绍如何使用acme.sh来签发并自动续期LetsEncrypt免费SSL证书。
二、安装
安装acme.sh,只需要一条命令
curl https://get.acme.sh | sh
alias acme.sh=~/.acme.sh/acme.sh
使用DNS方式验证 ,本文以CloudXNS(此服务商已经停止为免费用户提供dns服务,建议使用阿里云的云解析dns,方法同理)为例,其他DNS服务商见文章结尾
事实上,acme.sh支持http方式和DNS方式验证域名所有权,但考虑到有时会失效和部分用户服务器无web服务,此处使用DNS验证方式。
--------
2021-07-21更新:由于acme.sh调整了默认证书let's encrypt为zerossl导致后续签发证书报错如下:
解决方案二选一:
1.添加ssl证书前执行:export ACCOUNT_EMAIL="你的邮箱xxx@xxx.com"
2.添加ssl证书前执行:acme.sh --set-default-ca --server letsencrypt
-------
1.验证域名
登录DNS控制台,进入API管理页面(不同DNS服务商的页面不同,见文章结尾),记录下API信息
导入API信息到acme.sh,运行命令
export CX_Key="1234" export CX_Secret="sADDsdasdgdsf"
2.签发证书
[1]签发指定域名,如example.com,运行命令
acme.sh --issue --dns dns_cx -d example.com -d www.example.com --reloadcmd "/nginx/nginx/sbin/nginx -s reload"
#签发ECC证书请使用以下命令
acme.sh --issue --dns dns_cx -d example.com -d www.example.com --keylength ec-256 --reloadcmd "/nginx/nginx/sbin/nginx -s reload"
[2]签发泛域名,运行命令
acme.sh --issue --dns dns_cx -d example.com -d *.example.com --reloadcmd "/nginx/nginx/sbin/nginx -s reload"
#签发ECC证书请使用以下命令
acme.sh --issue --dns dns_cx -d example.com -d *. example.com --keylength ec-256 --reloadcmd "/nginx/nginx/sbin/nginx -s reload"
请注意:reloadcmd非常重要,--reloadcmd "" 中为重启对应服务命令,如上为博主自己服务器上重启nginx服务命令。如果没有正确的“reloadcmd”,证书可以自动续订,但是证书可能无法刷新到您的服务器(如nginx或apache),那么您的网站将无法在60天内显示续订证书。
保持最新的acme
acme.sh --upgrade --auto-upgrade
请注意,命令中export CX_Key、export CX_Secret、–dns dns_cx为CloudXNS的参数,请根据你的服务商修改
各大DNS商API获取方法请参考官方文档(本教程在第三点,阿里云在第11),如下:
https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
https://github.com/Neilpang/acme.sh/wiki/dnsapi
阿里云 云解析参考:
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" export Ali_Secret="jlsdflanljkljlfdsaklkjflsa" acme.sh --issue --dns dns_ali -d example.com --reloadcmd "/nginx/nginx/sbin/nginx -s reload"
签发成功!
取消域名签发方式:
acme.sh --remove -d example.com
并手动删除目录 /root/.acme.sh/签发的域名/
默认新签发的证书路径为: /root/.acme.sh/签发的域名/ 目录下。
另外有standalone生成ssl证书的方式,请参考 https://www.cnblogs.com/007sx/p/11370713.html