add le-dns/dnspod
This commit is contained in:
parent
edbcd0ac5c
commit
aa708a0df8
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
function deploy_challenge {
|
||||
local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"
|
||||
echo $DOMAIN $TOKEN_FILENAME $TOKEN_VALUE
|
||||
./dnspod.sh ./dnspod.conf $DOMAIN $TOKEN_VALUE
|
||||
sleep 5
|
||||
}
|
||||
|
||||
function clean_challenge {
|
||||
local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"
|
||||
}
|
||||
|
||||
function deploy_cert {
|
||||
local DOMAIN="${1}" KEYFILE="${2}" CERTFILE="${3}" CHAINFILE="${4}"
|
||||
}
|
||||
|
||||
HANDLER=$1; shift; $HANDLER $@
|
|
@ -0,0 +1,4 @@
|
|||
TOKEN="YOUR_API_TOKEN"
|
||||
RECORD_LINE="默认"
|
||||
DOMAIN="example.com"
|
||||
CERT_DOMAINS="example.com www.example.com im.example.com"
|
|
@ -0,0 +1,74 @@
|
|||
#!/bin/sh
|
||||
|
||||
CONFIG=$1
|
||||
DOMAIN_FULL=$2
|
||||
TXT_TOKEN=$3
|
||||
|
||||
if [ ! -f "$CONFIG" ];then
|
||||
echo "ERROR, CONFIG NOT EXIST."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. "$CONFIG"
|
||||
|
||||
SUB_DOMAIN=${DOMAIN_FULL%$DOMAIN}
|
||||
|
||||
if [ -z "$SUB_DOMAIN" ];then
|
||||
HOST="_acme-challenge"
|
||||
else
|
||||
HOST="_acme-challenge.${SUB_DOMAIN%.}"
|
||||
fi
|
||||
|
||||
echo "$HOST.$DOMAIN"
|
||||
|
||||
OPTIONS="login_token=${TOKEN}";
|
||||
OUT=$(curl -s -k "https://dnsapi.cn/Domain.List" -d "${OPTIONS}");
|
||||
for line in $OUT;do
|
||||
if [ "$(echo "$line"|grep '<id>' -c)" != 0 ];then
|
||||
DOMAIN_ID=${line%<*};
|
||||
DOMAIN_ID=${DOMAIN_ID#*>};
|
||||
# echo "domain id: $DOMAIN_ID";
|
||||
fi
|
||||
if [ "$(echo "$line"|grep '<name>' -c)" != 0 ];then
|
||||
DOMAIN_NAME=${line%<*};
|
||||
DOMAIN_NAME=${DOMAIN_NAME#*>};
|
||||
# echo "domain name: $DOMAIN_NAME";
|
||||
if [ "$DOMAIN_NAME" = "$DOMAIN" ];then
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "$DOMAIN_NAME $DOMAIN_ID"
|
||||
|
||||
OUT=$(curl -s -k "https://dnsapi.cn/Record.List" -d "${OPTIONS}&domain_id=${DOMAIN_ID}")
|
||||
for line in $OUT;do
|
||||
if [ "$(echo "$line"|grep '<id>' -c)" != 0 ];then
|
||||
RECORD_ID=${line%<*};
|
||||
RECORD_ID=${RECORD_ID#*>};
|
||||
# echo "record id: $RECORD_ID";
|
||||
fi
|
||||
if [ "$(echo "$line"|grep '<name>' -c)" != 0 ];then
|
||||
RECORD_NAME=${line%<*};
|
||||
RECORD_NAME=${RECORD_NAME#*>};
|
||||
# echo "record name: $RECORD_NAME";
|
||||
if [ "$RECORD_NAME" = "$HOST" ];then
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo "$RECORD_NAME:$RECORD_ID"
|
||||
|
||||
if [ "$RECORD_NAME" = "$HOST" ];then
|
||||
echo "UPDATE RECORD"
|
||||
OUT=$(curl -k -s "https://dnsapi.cn/Record.Modify" -d "${OPTIONS}&domain_id=${DOMAIN_ID}&record_id=${RECORD_ID}&sub_domain=${HOST}&record_line=${RECORD_LINE}&record_type=TXT&value=${TXT_TOKEN}")
|
||||
else
|
||||
echo "NEW RECORD"
|
||||
OUT=$(curl -k -s "https://dnsapi.cn/Record.Create" -d "${OPTIONS}&domain_id=${DOMAIN_ID}&sub_domain=${HOST}&record_line=${RECORD_LINE}&record_type=TXT&value=${TXT_TOKEN}")
|
||||
fi
|
||||
|
||||
if [ "$(echo "$OUT"|grep 'successful' -c)" != 0 ];then
|
||||
echo "DNS UPDATE SUCCESS"
|
||||
else
|
||||
echo "DNS UPDATE FAILED"
|
||||
fi
|
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
|
||||
export CONFIG=$1
|
||||
|
||||
if [ -f "$CONFIG" ];then
|
||||
. "$CONFIG"
|
||||
cd "$(dirname $CONFIG)" || exit 1
|
||||
else
|
||||
echo "ERROR CONFIG."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$CERT_DOMAINS" > domains.txt
|
||||
|
||||
if [ ! -f "dnspod.sh" ];then
|
||||
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/dnspod.sh -O dnspod.sh -o /dev/null
|
||||
chmod +x dnspod.sh
|
||||
fi
|
||||
|
||||
if [ ! -f "dnspod-hook.sh" ];then
|
||||
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/dnspod-hook.sh -O dnspod-hook.sh -o /dev/null
|
||||
chmod +x dnspod-hook.sh
|
||||
fi
|
||||
|
||||
if [ ! -f "letsencrypt.sh" ];then
|
||||
wget https://github.com/lukas2511/letsencrypt.sh/raw/master/letsencrypt.sh -O letsencrypt.sh -o /dev/null
|
||||
chmod +x letsencrypt.sh
|
||||
fi
|
||||
|
||||
./letsencrypt.sh -c -k ./dnspod-hook.sh -t dns-01
|
Loading…
Reference in New Issue