安装acme.sh

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

#安装
curl  https://get.acme.sh | sh
#让alias生效
source ~/.bashrc

设置DNS API

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

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

使用h脚本申请Let’s Encrypt SSL证书

输入下面的命令导入密钥(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

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

使用h脚本申请Let’s Encrypt SSL证书

如果您使用的Nginx可参考《Nginx怎样部署SSL证书》部署SSL证书,一般只会用到fullchain.cerdomain.com.key这两个文件。

复制证书

前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件。正确的使用方法是使用 --installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:

acme.sh  --installcert  -d  xiaoz.top   \
        --key-file   /data/ssl/xiaoz.top.key \
        --fullchain-file /data/ssl/xiaoz.top.cer \
        --reloadcmd  "service nginx force-reload"

时梦时醒读书,忽晴忽雨江湖