1,acme.sh 方式
1)获取acme脚本
curl https://get.acme.sh | sh
2)开始获取证书
acme.sh
强大之处在于,可以自动配置DNS,不用去域名后台操作解析记录了,我的域名是在阿里注册的,下面给出阿里云解析的例子,其他地方注册的请参考这里自行修改:传送门
请先前往阿里云后台获取App_Key
跟App_Secret
传送门,然后执行以下脚本
export Ali_Key="xxxxxxxxxxxxxxxxx" export Ali_Secret="xxxxxxxxxxxxxxxx"
注释: xxxxxxxxxxxxxxxx自行替换
acme.sh --issue --dns dns_ali -d domain.com -d *. domain.com
注释:domain.com自行替换为自己的域名
注意:步骤2我的操作的路径在root用户目录下,/root/.acme.sh/下,执行上述命令后, 生成的证书位于/root/.acme.sh/domain/下
acme.sh
比certbot
的方式更加自动化,省去了手动去域名后台改DNS记录的步骤,而且不用依赖Python,墙裂推荐
第一次成功之后,acme.sh
会记录下App_Key跟App_Secret,并且生成一个定时任务,每天凌晨0:00自动检测过期域名并且自动续期。对这种方式有顾虑的,请慎重,不过也可以自行删掉用户级的定时任务,并且清理掉~/.acme.sh文件夹就行
2,docker方式
docker run --rm -it -v "$(pwd)/out":/acme.sh -e Ali_Key="xxxxxx" -e Ali_Secret="xxxx" neilpang/acme.sh --issue --dns dns_ali -d domain.com -d *.domain.com
成功之后,证书会保存在当前目录下的out文件夹,也可以指定路径,修改上面第一行 "$(pwd)/out"
,改为你想要保存的路径即可。同理,domain.com自行替换
详细用法,可以参考:传送门
3,certbot方式
证书的配置及cerboot方式获取证书参考申请 Let’s Encrypt 泛域名证书 及 Nginx/Apache 证书配置