早上起来,jevin发来讯息,说是 Let’s Encrypt 的野卡证书到底放行上线了,有点小激动。
如许高大上的东西,一定要吃完早餐再来折腾。
之前一向用的LE的证书,因而就按部就班,率先在服务器端部署acme的申请script
curl https://get.acme.sh | sh
依据官方的说明,部署终了后能使用
acme.sh *
这样的command执行申请,但是部分环境可能会碰到 acme.sh: command not found 的情况,这时只需使用绝对路径就行
~/.acme.sh/acme.sh *
依据从前使用Let’s Encrypt证书的经验,直接复制粘贴以前的command居然报错,提示 The supported validation types are dns-01,but you specified http-01
好吧,意义是不能使用HTTP认证域名,需要改用DNS认证的方法,对需要申请证书的域名增加一条txt记载以便认证
幸亏amce.sh支持各类DNS服务商的API,如cloudflare, dnspod, cloudxns, godaddy,这里以dnspod为例,申请API
申请API以后持续执行申请,acmescript会使用增加的API主动在DNS服务商处对域名增加TXT记载
export DP_Id="申请的API ID"
export DP_Key="申请的API Key"
~/.acme.sh/acme.sh --issue --dns dns_dp -d *.bugxia.com
执行途中中需要等候120秒,以便TXT记载生效,最后即是申请成功
需要注意的是:这里指定的API信息会save下来,将来再次使用DNS方法认证其他域名,或者续期的时候便会主动挪用,如:
acme.sh --issue -d xxxxxx.com --dns dns_dp
申请完毕后便可以使用 /root/.acme.sh/***.com/ 下的站点证书 *.cer 与密钥 *.key 增加到站点了
有些程式如腾讯云的CDN,需要使用兼并证书 fullchain.cer ,这里不再记载。
申请后acme.shscript会主动增加一条crontab按时任务,以便script主动续期,如果没有主动续期,能执行以下command
~/.acme.sh/acme.sh --renew --dns dns_dp -d *.bugxia.com
因为 acme 协议与 letsencrypt CA 都在频繁的更新, 因而 acme.sh 也常常更新以连结同步
#upgrade
~/.acme.sh/acme.sh --upgrade
#主动upgrade
~/.acme.sh/acme.sh --upgrade --auto-upgrade
#关闭主动upgrade
~/.acme.sh/acme.sh --upgrade --auto-upgrade 0
参考文献: https://host.fubi.hk/foreshadowinghost/zhishiku/20181025/8357.html
网友评论