优点:不需要域名必须在公网解析(因为不会再进行公网ssl验证了),并且不需要每次添加新域名都要进行一次域名的验证,而只需要首次TXT记录的验证就行,以后再添加同级域名直接就是带有ssl的。
缺点:支支持同级的泛域名,例如*.domain支持A.domain、B.domain,但是不支持A.B.domain。

下面介绍下使用。

安装acme.sh

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

使acme.sh在bash中生效

source .bashrc 

签发证书

首先需要进行账号注册

acme.sh --register-account -m [email protected]

获取TXT验证记录,可能需要添加多条

acme.sh --issue --dns -d domian.com -d *.domian.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

泛域名证书签发

acme.sh --renew -d domian.com -d *.domian.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

证书合并

acme.sh --install-cert -d domian.com --key-file /var/www/html/ssl/domian.com.key.pem --fullchain-file /var/www/html/ssl/domian.com.cert.pem

nginx调用

ssl_certificate     /var/www/html/ssl/domian.com.cert.pem;
ssl_certificate_key /var/www/html/ssl/domian.com.key.pem;

证书有效期依然是90天,做好自动续约的脚本renew_cert.sh,脚本内容

#!/bin/bash

/root/.acme.sh/acme.sh --renew -d domian.com -d *.domian.com --yes-I-know-dns-manual-mode-enough-go-ahead-please
/root/.acme.sh/acme.sh --install-cert -d domian.com --key-file /var/www/html/ssl/domian.com.key.pem --fullchain-file /var/www/html/ssl/domian.com.cert.pem