之前只有一个域名的时候,直接使用 Let's Encrypt 来申请证书很方便。现在二级域名多了起来之后就不想一个一个去申请证书。

突然想起之前看到李先生曾经设置过泛域名证书,准备照着这个方法来自己试一下。

首先安装 acme.sh

安装时使用 root 用户:

sudo su -
curl  https://get.acme.sh | sh

安装完成之后重启一下 bash,并开启 acme.sh 的自动更新

acme.sh --upgrade --auto-upgrade

然后我准备使用 DNS 方法来申请证书,因为我用的是 DNSPod,所以先去这里申请 API Key

export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

acme.sh --issue --dns dns_dp -d hehome.xyz -d *.hehome.xyz

安装证书

acme.sh --installcert -d hehome.xyz \
        --key-file   /etc/nginx/ssl/hehome.xyz.key \
        --fullchain-file /etc/nginx/ssl/fullchain.cer \
        --reloadcmd  "service nginx force-reload"

最后在 Nginx 配置中添加下面的语句

ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/hehome.xyz.key;

至此便完成了所有的配置,这下就只需要申请这一个证书,所有的二级域名都能使用。以后 acme.sh 也会自动续期证书。

标签: acme.sh, 泛域名, 证书