acme.sh申请免费SSL证书,泛域名证书,多域名证书

注意:泛域名证书只能通过DNS API申请(DNS手动申请无法通过acme.sh自动续期)

acme.sh可以通过acme协议生成Let’s Encrypt颁发的SSL证书。

Let’s Encrypt 提供了单域名证书,泛域名证书和多域名证书

0.GitHub地址
1.在线安装
curl https://get.acme.sh | sh

OR

wget -O -  https://get.acme.sh | sh

创建acme.sh别名

alias acme.sh=~/.acme.sh/acme.sh

安装过程中会添加cronjob,每天自动检测所有证书是否需要更新。查看定时任务(证书有效期一般为90天,acme.sh会在证书失效之前进行自动更新):

crontab -e
2.设置acme.sh自动升级
acme.sh --upgrade --auto-upgrade
3.使用DNS API(泛域名证书只能通过DNS API申请)

必要条件:域名已经添加了解析(绑定了服务器IP)

acme.sh提供了两种方式进行验证域名所有权,一种是通过HTTP API,另一种是通过DNS API。
  • HTTP API通过修改Apache和NGINX配置,在根目录添加文件, 通过域名可以访问到该文件,验证成功。
  • DNS API 通过云服务商提供的API(需要云服务商支持),在DNS添加一条TXT解析记录,添加成功则验证通过。国内的云服务比如jdcloud,Aliyun,DNSPod都可以使用这种方式。如果云服务商不在支持的列表里,可以使用腾讯云的DNSPod作为域名解析

dnsapi 用法说明

4.自动发布证书
a.登录控制台(dnsapi 用法说明中有对应服务商地址)获取api key id 和 api key secret
b.导出到系统变量
export JD_ACCESS_KEY_ID="sdfsdfsdfljlbjkljlkjsdfoiwje"
export JD_ACCESS_KEY_SECRET="xxxxxxx"
#查看添加的系统变量
echo $JD_ACCESS_KEY_ID
c.通过DNS API验证所有权,并生成证书(证书默认被保存在~/.acme.sh/目录中)
acme.sh --issue --dns dns_jd  -d example.com -d '*.example.com'

id和key会被保存到~/.acme.sh/account.conf文件中,如果id或key发生变更,可能需要进行修改

d.copy/安装 证书(如果不使用install-cert命令进行安装,证书更新之后还是被保存在默认目录,会导致已有证书过期之后无法被自动更新)
acme.sh --install-cert -d myflag.xyz \
--key-file       /etc/nginx/ssl/key.pem  \
--fullchain-file /etc/nginx/ssl/cert.pem \
--reloadcmd     "service nginx force-reload"

只用输入域名即可,不需要添加其他前缀

指定的所有参数都会被自动记录下来, 并在将来证书自动更新以后, 被再次自动调用

chaos-fe

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗小行星!

恰饭ing

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值