Let's Encrypt终于支持通配符证书了,也就是说你只需要为你的网站申请*.example.com这样一个证书,所有的子域名都可以支持,下面介绍下申请方法:
首先需要获取acme.sh
curl https://get.acme.sh | sh
acme.sh支持自动配置DNS,这样需要在域名控制后台获取AppKey和AppSecret.常见的阿里,Dnspod等都支持,这里有更详细的介绍:传送门 下面以Dnspod为例,首先获取AppKey和AppSecret 传送门.然后执行如下命令:
# 替换成从Dnspod后台获取的密钥
export DP_Id="DP_Id"
export DP_Key="DP_Key"
# 换成自己的域名
acme.sh --issue --dns dns_dp -d lylinux.net -d *.lylinux.net
这里是通过休眠120秒等待DNS生效的方式,所以至少需要等待两分钟,如果看到了验证成功的输出,则说明已经申请成功了。这种方式成功之后,会记录下App_Key跟App_Secret,并且生成一个定时任务,每天凌晨0:00自动检测过期域名并且自动续期。 下面再介绍下使用Docker来申请的方式:
docker run --rm -it -v "$(pwd)/ssl/":/acme.sh -e DP_Id=DP_Id -e && \
DP_Key=DP_Key neilpang/acme.sh --issue --dns dns_dp -d && \
lylinux.net -d *.lylinux.net --yes-I-know-dns-manual-mode-enough-go-ahead-please
验证方式同上,也是通过休眠120秒等待DNS生效的方式,如果看到了类似如下的输出,则说明申请成功了:
因为是使用Docker来执行的,且每次执行完之后都会删除容器,所以可以自己配置一个定时任务,每天执行上述命令就可以了。
至此,大功告成,可以配置你的nginx来使用证书了。