使用acme申请https免费证书

前言


​ 上次写了一篇https证书相关的笔记整理,个人觉得有些地方欠妥,这次介绍一个更方便更简单更?一点的工具——acme.sh.上次使用的工具是certbot.

两者对比,acme.sh有如下优点:

  • acme.sh会自动设置好定时任务.自动更新证书.certbot的更新需要手动设置cron.
  • acme.sh可以使用域名解析商提供的 api 自动添加 txt 记录完成验证.简单、高效.
  • 安装简单,没有环境依赖.卸载同样简单.

安装


# 建议使用root安装,
curl  https://get.acme.sh | sh 
复制代码

该命令会把acme安装在~/.acme.sh路径下,并为你创建一个检查更新证书的定时任务.

因为该工具有个参数reloadcmd可以预设命令,可能会reload nginx服务器等.建议使用root安装.

#查看定时任务
crontab -l
23 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
# --home --cron参数解释可用~/.acme.sh/acme.sh -h查看,解释如下
  --home                   Specifies the home dir for acme.sh.指定acme的路径
  --cron                   Run cron job to renew all the certs.定时检查更新证书
复制代码

签发证书(Issue a cert)


签发证书前,需要验证域名的所有权,acme支持多种方式验证,建议使用http和dns验证.

我的个人域名解析使用的是cloudflare的free套餐,且acme文档写明支持cloudflare.所以选择dns验证.

依照acme文档-how-to-use-dns-api,

1.登录cloudflare官网获取API key.

#cloudflare-->个人配置--->API key - Global API Key - view API key
# 拿到API key后,设置如下环境变量.
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"
复制代码

接下来就可以愉快的申请证书了.

申请证书命令如下:

acme.sh --issue -d glc.im -d *.glc.im --dns dns_cf \ 
--key-file "/etc/nginx/ssl/glc.im/xxxx.key" \ 
--fullchain-file "/etc/nginx/ssl/fullchain.cer" \ 
--reloadcmd "service nginx reload"
复制代码
  • glc.im /*.glc.im换成自己的域名
  • dns_cf是对应的cloudflare,其他域名解析服务商请参照https://github.com/Neilpang/acme.sh/wiki/dnsapi
  • key-file/fullchain-fil 签发证书后,acme会帮你把证书复制到该路径下
  • reloadcmd 因为是root安装的acme 此命令可以帮助我重载nginx

更多内容


转载于:https://juejin.im/post/5c99142cf265da61103b5362

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值