1、获取 acme.sh

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

如下所示安装成功:

...
[Tue Sep 24 18:23:55 CST 2019] Good, bash is found, so change the shebang to use bash as preferred.
[Tue Sep 24 18:23:55 CST 2019] OK
[Tue Sep 24 18:23:55 CST 2019] Install success!

2、获取证书

acme.sh 强大之处在于可以自动配置 DNS,我们不需要去域名后台操作解析记录。

我们这里以在阿里注册的域名为例,其他地方注册的请参考这里自行修改:传送门

请先前往阿里云后台获取App_KeyApp_Secret 传送门,然后执行以下脚本

# 替换成从阿里云后台获取的密钥
export Ali_Key="123"
export Ali_Secret="abbcddddd"
# 换成自己的域名
acme.sh --issue --dns dns_ali -d runcodex.com -d *.runcodex.com

执行成功后输出:

...
[Tue Sep 24 18:28:45 CST 2019] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/03324bb19fec1de831b1083a9810ccdd2109
[Tue Sep 24 18:28:47 CST 2019] Cert success.
...

输出的信息包含了证书存放的目录。

我这边生成的证书放在该目录下: /www/server/panel/vhost/cert/runcodex.com/runcodex.com.cer

第一次成功之后,acme.sh 会记录下 App_Key 跟 App_Secret,并且生成一个定时任务,通过 crontab -e 可以看到这个命令。如果不需要我们可以删掉定时任务,并且清理掉 ~/.acme.sh 文件夹就行了。

注意:国内一些厂商可以要求使用 pem 格式的内容,直接拷贝以下两个证书的内容就可以了(cer === PEM):

证书内容( PEM 格式 ):

$ cat domain.cer

证书私钥( PEM 格式 ):

$ cat domain.key