老左在"利用CloudXNS API快速验证域名一键获取Let's Encrypt SSL证书"文章,如果我们的域名解析使用的CloudXNS,即可快速的获取Let's Encrypt SSL证书及部署,可以算是在众多Let's Encrypt配置过程中比较方便的方法之一。同时,在GITHUB脚本中,还有提供DNSPOD对应域名解析平台脚本,如果我们域名使用的是DNSPOD解析,但也可以利用对应的脚本快速配置Let's Encrypt证书。
在这篇文章中,老左将整理这个脚本如何针对DNSPOD解析的域名获取Let's Encrypt证书的。
第一、准备工作
1、Linux VPS、服务器配置好WEB环境,且服务器上添加和布局好网站
2、检查我们当前的域名是不是使用的DNSPOD解析
3、创建API Token
默认API Token是关闭的,我们需要登入https://www.dnspod.cn/console/user/security 进行开启和创建。
这里创建好之后做好记录,等会需要用到。
第二、下载DNSPOD一键安装Let's Encrypt脚本
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-dnspod.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/dnspod.conf
chmod +x le-dnspod.sh
下载和授权
第三、修改dnspod.conf配置文件
TOKEN="YOUR_TOKEN_ID,YOUR_API_TOKEN"
RECORD_LINE="默认"
DOMAIN="laobuluo.com"
CERT_DOMAINS="laobuluo.com www.laobuluo.com"
#ECC=TRUE
这里需要修改TOKEN(注意格式)、DOMAIN、CERT_DOMAINS三项。注意将文件里面替换的时候格式。
第四、自动执行配置
./le-dnspod.sh dnspod.conf
看到这样的结果可以确定能够成功安装,而且会在当前的cert目录中有一个对应的域名文件夹。
第五、配置SSL到网站中
我们在自动获取到Let's Encrypt证书之后,我们需要到Nginx(如果是用apache则不同方法),进行配置文件修改。
ssl_certificate /root/certs/对应域名证书文件夹/cert.pem;
ssl_certificate_key /root/certs/对应域名证书文件夹/privkey.pem;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
修改配置文件之后,重新启动Nginx生效。
看来是成事了,我们后续只要修改下是否需要强制301跳转(Nginx环境强制http 301跳转https设置记录)指向HTTPS。
第六、设置Let's Encrypt自动续约
因为默认都是免费90天(这一点不好,好歹给个一年嘛),但是我们需要到期之前进行手机续约,这里也支持利用crontab自动激活续约。
0 0 5/20 * * /root/le-dnspod.sh /root/le-dnspod.conf >> /var/log/le-dnspod.log 2>&1
将自动续约任务添加到crontab中,这样会自动根据设定的时间检测且续约。执行之后重启nginx生效。