From c8bd32d54c4cbd5641ba18205860b996d6a61b43 Mon Sep 17 00:00:00 2001 From: tianyu Date: Sun, 14 Feb 2016 22:37:07 +0800 Subject: [PATCH] update le-cloudxns.sh --- le-dns/cloudxns-hook.sh | 4 ++-- le-dns/cloudxns.conf | 1 + le-dns/cloudxns.sh | 18 ++++++++++-------- le-dns/le-cloudxns.sh | 11 ++++++++--- 4 files changed, 21 insertions(+), 13 deletions(-) mode change 100644 => 100755 le-dns/cloudxns-hook.sh mode change 100644 => 100755 le-dns/cloudxns.sh mode change 100644 => 100755 le-dns/le-cloudxns.sh diff --git a/le-dns/cloudxns-hook.sh b/le-dns/cloudxns-hook.sh old mode 100644 new mode 100755 index 17d8ac7..d3ad5ee --- a/le-dns/cloudxns-hook.sh +++ b/le-dns/cloudxns-hook.sh @@ -2,8 +2,8 @@ function deploy_challenge { local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}" - echo $DOMAIN $TOKEN_FILENAME $TOKEN_VALUE - ./cloudxns.sh ./cloudxns.conf $DOMAIN $TOKEN_VALUE + echo "$DOMAIN" "$TOKEN_FILENAME" "$TOKEN_VALUE" + ./cloudxns.sh ./cloudxns.conf "$DOMAIN" "$TOKEN_VALUE" sleep 5 } diff --git a/le-dns/cloudxns.conf b/le-dns/cloudxns.conf index 83f0ad3..a101198 100644 --- a/le-dns/cloudxns.conf +++ b/le-dns/cloudxns.conf @@ -2,3 +2,4 @@ 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 diff --git a/le-dns/cloudxns.sh b/le-dns/cloudxns.sh old mode 100644 new mode 100755 index 8cfe320..f84b5e6 --- a/le-dns/cloudxns.sh +++ b/le-dns/cloudxns.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash CONFIG=$1 DOMAIN_FULL=$2 @@ -9,7 +9,7 @@ if [ ! -f "$CONFIG" ];then exit 1 fi -. $CONFIG +. "$CONFIG" SUB_DOMAIN=${DOMAIN_FULL%$DOMAIN} @@ -24,13 +24,13 @@ DATE=$(date) HMAC_D=$(echo -n "$API_KEY$URL_D$DATE$SECRET_KEY"|md5sum|cut -d" " -f1) DOMAIN_ID=$(curl -k -s $URL_D -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_D"|grep -o "id\":\"[0-9]*\",\"domain\":\"$DOMAIN"|grep -o "[0-9]*"|head -n1) -echo "DOMAIN ID: "$DOMAIN_ID +echo "DOMAIN ID: $DOMAIN_ID" URL_R="https://www.cloudxns.net/api2/record/$DOMAIN_ID?host_id=0&row_num=500" HMAC_R=$(echo -n "$API_KEY$URL_R$DATE$SECRET_KEY"|md5sum|cut -d" " -f1) -RECORD_ID=$(curl -k -s $URL_R -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_R"|grep -o "record_id\":\"[0-9]*\",\"host_id\":\"[0-9]*\",\"host\":\"$HOST\""|grep -o "record_id\":\"[0-9]*"|grep -o "[0-9]*") +RECORD_ID=$(curl -k -s "$URL_R" -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_R"|grep -o "record_id\":\"[0-9]*\",\"host_id\":\"[0-9]*\",\"host\":\"$HOST\""|grep -o "record_id\":\"[0-9]*"|grep -o "[0-9]*") -echo "RECORD ID: "$RECORD_ID +echo "RECORD ID: $RECORD_ID" if [ -z "$RECORD_ID" ];then URL_U="https://www.cloudxns.net/api2/record" @@ -43,11 +43,13 @@ fi PARAM_BODY="{\"domain_id\":\"$DOMAIN_ID\",\"host\":\"$HOST\",\"value\":\"$TXT_TOKEN\",\"type\":\"TXT\",\"line_id\":1,\"ttl\":60}" HMAC_U=$(echo -n "$API_KEY$URL_U$PARAM_BODY$DATE$SECRET_KEY"|md5sum|cut -d" " -f1) -RESULT=$(curl -k -s $URL_U -X $CURLX -d $PARAM_BODY -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_U" -H 'Content-Type: application/json') +RESULT=$(curl -k -s "$URL_U" -X "$CURLX" -d "$PARAM_BODY" -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_U" -H 'Content-Type: application/json') -echo $RESULT +echo "$RESULT" -if [ $(echo -n "$RESULT"|grep -o "message\":\"success\""|wc -l) = 1 ];then +RES=$(echo -n "$RESULT"|grep -o "message\":\"success\"" -c) + +if [ "$RES" = 1 ];then echo "$(date) -- Update success" else echo "$(date) -- Update failed" diff --git a/le-dns/le-cloudxns.sh b/le-dns/le-cloudxns.sh old mode 100644 new mode 100755 index 6e62076..c656adb --- a/le-dns/le-cloudxns.sh +++ b/le-dns/le-cloudxns.sh @@ -3,8 +3,9 @@ export CONFIG=$1 if [ -f "$CONFIG" ];then - . $CONFIG - cd $(dirname $CONFIG) + . "$CONFIG" + DIRNAME=$(dirname "$CONFIG") + cd "$DIRNAME" || exit 1 else echo "ERROR CONFIG." exit 1 @@ -27,4 +28,8 @@ if [ ! -f "letsencrypt.sh" ];then chmod +x letsencrypt.sh fi -./letsencrypt.sh -c -k ./cloudxns-hook.sh -t dns-01 +if [ "$ECC" = "TRUE" ];then + ./letsencrypt.sh -c -k ./cloudxns-hook.sh -t dns-01 -a secp384r1 +else + ./letsencrypt.sh -c -k ./cloudxns-hook.sh -t dns-01 +fi