Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
README.md
cloudflare-hook.sh
cloudflare.conf
cloudflare.sh
cloudxns-hook.sh
cloudxns.conf update le-cloudxns.sh Feb 14, 2016
cloudxns.sh
dnspod-hook.sh
dnspod.conf
dnspod.sh
le-cloudflare.sh Update le-cloudflare.sh Jun 27, 2018
le-cloudxns.sh
le-dnspod.sh

README.md

通过 DNS 验证方式获取 lets-encrypt 证书的快速脚本

脚本基于 letsencrypt.sh,通过调用 dns 服务商接口更新 TXT 记录用于认证,实现快速获取 lets-encrypt 证书。无需root权限,无需指定网站目录及DNS解析

cloudflare

下载

wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-cloudflare.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/cloudflare.conf
chmod +x le-cloudflare.sh

配置

cloudflare.conf 文件内容

CF_EMAIL="YOUR_API_KEY"
CF_EMAIL="YOUR_SECRET_KEY"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE

修改其中的 CF_EMAILCF_EMAIL 为您的邮箱和 cloudflare api key ,修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。

野卡证书

脚本支持野卡证书,请修改 CERT_DOMAINS 为 "example.com *.example.com sub.example.com *.sub.example.com" 。注意如果之前使用过脚本,需要更新脚本内容,删除所有 *.sh 文件再下载运行脚本。

运行

./le-cloudflare.sh ./cloudflare.conf

最后生成的文件在当前目录的 certs 目录下

cron 定时任务

如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。

每隔20天(每个月的2号和22号)自动更新一次证书,可以在 le-cloudflare.sh 脚本最后加入 service nginx reload等重新加载服务。

0 0 2/20 * * /etc/nginx/le-cloudflare.sh /etc/nginx/le-cloudflare.conf >> /var/log/le-cloudflare.log 2>&1

注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 2/202,22

更详细的 crontab 参数请参考 crontab.guru 进行自定义

cloudxns

下载

wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-cloudxns.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/cloudxns.conf
chmod +x le-cloudxns.sh

配置

cloudxns.conf 文件内容

API_KEY="YOUR_API_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE

修改其中的 API_KEYSECRET_KEY 为您的 cloudxns api key ,修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。

运行

./le-cloudxns.sh cloudxns.conf

最后生成的文件在当前目录的 certs 目录下

cron 定时任务

如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。

每隔20天(每个月的2号和22号)自动更新一次证书,可以在 le-cloudxns.sh 脚本最后加入 service nginx reload等重新加载服务。

0 0 2/20 * * /etc/nginx/le-cloudxns.sh /etc/nginx/le-cloudxns.conf >> /var/log/le-cloudxns.log 2>&1

注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 2/202,22

更详细的 crontab 参数请参考 crontab.guru 进行自定义

dnspod

下载

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="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE

修改其中的 TOKEN 为您的 dnspod api token ,注意格式为123456,556cxxxx。 修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。

运行

./le-dnspod.sh dnspod.conf

最后生成的文件在当前目录的 certs 目录下

cron 定时任务

如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。

每隔20天(每个月的5号和25号)自动更新一次证书,可以在 le-dnspod.sh 脚本最后加入 service nginx reload等重新加载服务。

0 0 5/20 * * /etc/nginx/le-dnspod.sh /etc/nginx/le-dnspod.conf >> /var/log/le-dnspod.log 2>&1

注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 5/205,25

更详细的 crontab 参数请参考 crontab.guru 进行自定义

You can’t perform that action at this time.