使用acme.sh脚本申请Let’s Encrypt 泛域名SSL证书

安装acme.sh

以下命令请在Linux系统执行,root和普通用户均可安装:

 #安装

curl  https://get.acme.sh | sh

#让alias生效

source ~/.bashrc 

设置DNS API

目前泛域名证书仅支持DNS验证,acme.sh通过DNS提供商的API自动完成操作,因此需要先设置DNS API,以CloudXNS为例。

使用acme.sh脚本申请Let’s Encrypt 泛域名SSL证书-技术宅

在CloudXNS后台 – 用户中心 – API管理可以看到API KEY/SECRET KEY,如果没有请自行创建并记录下来。

输入下面的命令导入密钥(CloudXNS),注意不同的DNS,导入的参数不一样,具体您可以参考:dnsapi

export CX_Key="1234"export CX_Secret="sADDsdasdgdsf"
  • CX_Key:对应CloudXNS API KEY
  • CX_Secret:对应CloudXNS SECRET KEY

其它常用DNS API设置

CloudFlare

#导入密钥export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"export CF_Email="xxxx@sss.com"#申请证书acme.sh --issue --dns dns_cf -d example.com -d www.example.com

腾讯/DNSPod(国内版)

#导入密钥export DP_Id="1234"export DP_Key="sADDsdasdgdsf"#申请证书acme.sh --issue --dns dns_dp -d example.com -d www.example.com

阿里云

 #导入密钥

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"

export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

#申请证书

acme.sh --issue --dns dns_ali -d example.com -d www.example.com

 

更多DNS API设置请参考:https://github.com/Neilpang/acme.sh/tree/master/dnsapi 

签发泛域名证书

以CloudXNS DNS为例,我们为awk.sh签发一个泛域名证书。

acme.sh --issue --dns dns_cx -d awk.sh -d *.awk.sh
使用acme.sh脚本申请Let’s Encrypt 泛域名SSL证书-技术宅

申请成功后会提示证书绝对路径(如下截图),接下来就可以在WEB服务上部署SSL证书了。

一般来说我们只会用到fullchain.cerdomain.com.key这两个文件

总结

目前Let’s Encrypt已经支持多域名、泛域名,但缺点是有效期依然只有三个月,即使可以设置脚本自动续期,但是管理维护还是有点不便。推荐大家使用一键包,这样大家维护起来还是比较方便的。

其实在执行acme.sh的时候,会自动在服务器添加一个crontab,到三个月的时候会自动续签,所以,动手能力不强的推荐大家使用lnmp之类的一键包!

Leave a Reply