|
|
@ -1750,6 +1750,57 @@ _clearupwebbroot() { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_clearupdnsrr() { |
|
|
|
|
|
[ "$1" -eq "1" ] || return 0 |
|
|
|
|
|
[ -n "$2" ] || return 0 |
|
|
|
|
|
txtdomain="_acme-challenge.$2" |
|
|
|
|
|
|
|
|
|
|
|
d_api="" |
|
|
|
|
|
if [ -f "$LE_WORKING_DIR/$d/$_currentRoot" ] ; then |
|
|
|
|
|
d_api="$LE_WORKING_DIR/$d/$_currentRoot" |
|
|
|
|
|
elif [ -f "$LE_WORKING_DIR/$d/$_currentRoot.sh" ] ; then |
|
|
|
|
|
d_api="$LE_WORKING_DIR/$d/$_currentRoot.sh" |
|
|
|
|
|
elif [ -f "$LE_WORKING_DIR/$_currentRoot" ] ; then |
|
|
|
|
|
d_api="$LE_WORKING_DIR/$_currentRoot" |
|
|
|
|
|
elif [ -f "$LE_WORKING_DIR/$_currentRoot.sh" ] ; then |
|
|
|
|
|
d_api="$LE_WORKING_DIR/$_currentRoot.sh" |
|
|
|
|
|
elif [ -f "$LE_WORKING_DIR/dnsapi/$_currentRoot" ] ; then |
|
|
|
|
|
d_api="$LE_WORKING_DIR/dnsapi/$_currentRoot" |
|
|
|
|
|
elif [ -f "$LE_WORKING_DIR/dnsapi/$_currentRoot.sh" ] ; then |
|
|
|
|
|
d_api="$LE_WORKING_DIR/dnsapi/$_currentRoot.sh" |
|
|
|
|
|
fi |
|
|
|
|
|
_debug d_api "$d_api" |
|
|
|
|
|
|
|
|
|
|
|
if [ "$d_api" ] ; then |
|
|
|
|
|
_info "Found domain api file: $d_api" |
|
|
|
|
|
else |
|
|
|
|
|
_err "Remove the following TXT record:" |
|
|
|
|
|
_err "Domain: '$(__green $txtdomain)'" |
|
|
|
|
|
_err "Please be aware that you prepend _acme-challenge. before your domain" |
|
|
|
|
|
_err "so the resulting subdomain will be: $txtdomain" |
|
|
|
|
|
return 0 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if ! . $d_api ; then |
|
|
|
|
|
_err "Load file $d_api error. Please check your api file and try again." |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
delcommand="${_currentRoot}_del" |
|
|
|
|
|
|
|
|
|
|
|
if ! _exists $delcommand ; then |
|
|
|
|
|
_err "It seems that your api file is not correct, it must have a function named: $delcommand" |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if ! $delcommand $txtdomain ; then |
|
|
|
|
|
_err "Error del txt for domain:$txtdomain" |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
return 0 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
_on_before_issue() { |
|
|
_on_before_issue() { |
|
|
_debug _on_before_issue |
|
|
_debug _on_before_issue |
|
|
if _hasfield "$Le_Webroot" "$NO_VALUE" ; then |
|
|
if _hasfield "$Le_Webroot" "$NO_VALUE" ; then |
|
|
@ -2385,6 +2436,7 @@ issue() { |
|
|
if ! _send_signed_request $uri "{\"resource\": \"challenge\", \"keyAuthorization\": \"$keyauthorization\"}" ; then |
|
|
if ! _send_signed_request $uri "{\"resource\": \"challenge\", \"keyAuthorization\": \"$keyauthorization\"}" ; then |
|
|
_err "$d:Can not get challenge: $response" |
|
|
_err "$d:Can not get challenge: $response" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
|
|
|
_clearupdnsrr $dnsadded $d |
|
|
_clearup |
|
|
_clearup |
|
|
_on_issue_err |
|
|
_on_issue_err |
|
|
return 1 |
|
|
return 1 |
|
|
@ -2393,6 +2445,7 @@ issue() { |
|
|
if [ ! -z "$code" ] && [ ! "$code" = '202' ] ; then |
|
|
if [ ! -z "$code" ] && [ ! "$code" = '202' ] ; then |
|
|
_err "$d:Challenge error: $response" |
|
|
_err "$d:Challenge error: $response" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
|
|
|
_clearupdnsrr $dnsadded $d |
|
|
_clearup |
|
|
_clearup |
|
|
_on_issue_err |
|
|
_on_issue_err |
|
|
return 1 |
|
|
return 1 |
|
|
@ -2408,6 +2461,7 @@ issue() { |
|
|
if [ "$waittimes" -ge "$MAX_RETRY_TIMES" ] ; then |
|
|
if [ "$waittimes" -ge "$MAX_RETRY_TIMES" ] ; then |
|
|
_err "$d:Timeout" |
|
|
_err "$d:Timeout" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
|
|
|
_clearupdnsrr $dnsadded $d |
|
|
_clearup |
|
|
_clearup |
|
|
_on_issue_err |
|
|
_on_issue_err |
|
|
return 1 |
|
|
return 1 |
|
|
@ -2420,6 +2474,7 @@ issue() { |
|
|
if [ "$?" != "0" ] ; then |
|
|
if [ "$?" != "0" ] ; then |
|
|
_err "$d:Verify error:$response" |
|
|
_err "$d:Verify error:$response" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
|
|
|
_clearupdnsrr $dnsadded $d |
|
|
_clearup |
|
|
_clearup |
|
|
_on_issue_err |
|
|
_on_issue_err |
|
|
return 1 |
|
|
return 1 |
|
|
@ -2435,6 +2490,7 @@ issue() { |
|
|
_stopserver $serverproc |
|
|
_stopserver $serverproc |
|
|
serverproc="" |
|
|
serverproc="" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
|
|
|
_clearupdnsrr $dnsadded $d |
|
|
break; |
|
|
break; |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
@ -2455,6 +2511,7 @@ issue() { |
|
|
fi |
|
|
fi |
|
|
fi |
|
|
fi |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
|
|
|
_clearupdnsrr $dnsadded $d |
|
|
_clearup |
|
|
_clearup |
|
|
_on_issue_err |
|
|
_on_issue_err |
|
|
return 1; |
|
|
return 1; |
|
|
@ -2465,6 +2522,7 @@ issue() { |
|
|
else |
|
|
else |
|
|
_err "$d:Verify error:$response" |
|
|
_err "$d:Verify error:$response" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
_clearupwebbroot "$_currentRoot" "$removelevel" "$token" |
|
|
|
|
|
_clearupdnsrr $dnsadded $d |
|
|
_clearup |
|
|
_clearup |
|
|
_on_issue_err |
|
|
_on_issue_err |
|
|
return 1 |
|
|
return 1 |
|
|
@ -2843,7 +2901,7 @@ _installcert() { |
|
|
if [ -f "$Le_RealCertPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
if [ -f "$Le_RealCertPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
cp "$Le_RealCertPath" "$Le_RealCertPath".bak |
|
|
cp "$Le_RealCertPath" "$Le_RealCertPath".bak |
|
|
fi |
|
|
fi |
|
|
cat "$CERT_PATH" > "$Le_RealCertPath" |
|
|
|
|
|
|
|
|
install -D -m0640 "$CERT_PATH" "$Le_RealCertPath" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
if [ "$Le_RealCACertPath" ] ; then |
|
|
if [ "$Le_RealCACertPath" ] ; then |
|
|
@ -2856,7 +2914,7 @@ _installcert() { |
|
|
if [ -f "$Le_RealCACertPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
if [ -f "$Le_RealCACertPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
cp "$Le_RealCACertPath" "$Le_RealCACertPath".bak |
|
|
cp "$Le_RealCACertPath" "$Le_RealCACertPath".bak |
|
|
fi |
|
|
fi |
|
|
cat "$CA_CERT_PATH" > "$Le_RealCACertPath" |
|
|
|
|
|
|
|
|
install -D -m0640 "$CA_CERT_PATH" "$Le_RealCACertPath" |
|
|
fi |
|
|
fi |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
@ -2867,7 +2925,7 @@ _installcert() { |
|
|
if [ -f "$Le_RealKeyPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
if [ -f "$Le_RealKeyPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
cp "$Le_RealKeyPath" "$Le_RealKeyPath".bak |
|
|
cp "$Le_RealKeyPath" "$Le_RealKeyPath".bak |
|
|
fi |
|
|
fi |
|
|
cat "$CERT_KEY_PATH" > "$Le_RealKeyPath" |
|
|
|
|
|
|
|
|
install -D -m0640 "$CERT_KEY_PATH" "$Le_RealKeyPath" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
if [ "$Le_RealFullChainPath" ] ; then |
|
|
if [ "$Le_RealFullChainPath" ] ; then |
|
|
@ -2876,7 +2934,7 @@ _installcert() { |
|
|
if [ -f "$Le_RealFullChainPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
if [ -f "$Le_RealFullChainPath" ] && [ ! "$IS_RENEW" ] ; then |
|
|
cp "$Le_RealFullChainPath" "$Le_RealFullChainPath".bak |
|
|
cp "$Le_RealFullChainPath" "$Le_RealFullChainPath".bak |
|
|
fi |
|
|
fi |
|
|
cat "$CERT_FULLCHAIN_PATH" > "$Le_RealFullChainPath" |
|
|
|
|
|
|
|
|
install -D -m0640 "$CERT_FULLCHAIN_PATH" "$Le_RealFullChainPath" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
if [ "$Le_ReloadCmd" ] ; then |
|
|
if [ "$Le_ReloadCmd" ] ; then |
|
|
@ -3177,6 +3235,11 @@ _initconf() { |
|
|
# |
|
|
# |
|
|
#GD_Secret=\"sADDsdasdfsdfdssdgdsf\" |
|
|
#GD_Secret=\"sADDsdasdfsdfdssdgdsf\" |
|
|
|
|
|
|
|
|
|
|
|
####################### |
|
|
|
|
|
#nsupdate: |
|
|
|
|
|
#NSUPDATE_KEY=\"/path/to/update.key\" |
|
|
|
|
|
#NSUPDATE_SERVER=\"192.168.0.1\" |
|
|
|
|
|
|
|
|
####################### |
|
|
####################### |
|
|
#PowerDNS: |
|
|
#PowerDNS: |
|
|
#PDNS_Url=\"http://ns.example.com:8081\" |
|
|
#PDNS_Url=\"http://ns.example.com:8081\" |
|
|
@ -3243,9 +3306,7 @@ _installalias() { |
|
|
|
|
|
|
|
|
_envfile="$LE_WORKING_DIR/$PROJECT_ENTRY.env" |
|
|
_envfile="$LE_WORKING_DIR/$PROJECT_ENTRY.env" |
|
|
if [ "$_upgrading" ] && [ "$_upgrading" = "1" ] ; then |
|
|
if [ "$_upgrading" ] && [ "$_upgrading" = "1" ] ; then |
|
|
echo "$(cat $_envfile)" | sed "s|^LE_WORKING_DIR.*$||" > "$_envfile" |
|
|
|
|
|
echo "$(cat $_envfile)" | sed "s|^alias le.*$||" > "$_envfile" |
|
|
|
|
|
echo "$(cat $_envfile)" | sed "s|^alias le.sh.*$||" > "$_envfile" |
|
|
|
|
|
|
|
|
sed -i '/^LE_WORKING_DIR/d;/^alias le/d' "$_envfile" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
_setopt "$_envfile" "export LE_WORKING_DIR" "=" "\"$LE_WORKING_DIR\"" |
|
|
_setopt "$_envfile" "export LE_WORKING_DIR" "=" "\"$LE_WORKING_DIR\"" |
|
|
@ -3281,7 +3342,7 @@ _installalias() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
# nocron |
|
|
# nocron |
|
|
install() { |
|
|
|
|
|
|
|
|
_install() { |
|
|
|
|
|
|
|
|
if [ -z "$LE_WORKING_DIR" ] ; then |
|
|
if [ -z "$LE_WORKING_DIR" ] ; then |
|
|
LE_WORKING_DIR="$DEFAULT_INSTALL_HOME" |
|
|
LE_WORKING_DIR="$DEFAULT_INSTALL_HOME" |
|
|
@ -3381,7 +3442,7 @@ install() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
# nocron |
|
|
# nocron |
|
|
uninstall() { |
|
|
|
|
|
|
|
|
_uninstall() { |
|
|
_nocron="$1" |
|
|
_nocron="$1" |
|
|
if [ -z "$_nocron" ] ; then |
|
|
if [ -z "$_nocron" ] ; then |
|
|
uninstallcronjob |
|
|
uninstallcronjob |
|
|
@ -3390,20 +3451,17 @@ uninstall() { |
|
|
|
|
|
|
|
|
_profile="$(_detect_profile)" |
|
|
_profile="$(_detect_profile)" |
|
|
if [ "$_profile" ] ; then |
|
|
if [ "$_profile" ] ; then |
|
|
text="$(cat $_profile)" |
|
|
|
|
|
echo "$text" | sed "s|^.*\"$LE_WORKING_DIR/$PROJECT_NAME.env\"$||" > "$_profile" |
|
|
|
|
|
|
|
|
sed -i "|/$LE_WORKING_DIR/$PROJECT_NAME\.env/d" "$_profile" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
_csh_profile="$HOME/.cshrc" |
|
|
_csh_profile="$HOME/.cshrc" |
|
|
if [ -f "$_csh_profile" ] ; then |
|
|
if [ -f "$_csh_profile" ] ; then |
|
|
text="$(cat $_csh_profile)" |
|
|
|
|
|
echo "$text" | sed "s|^.*\"$LE_WORKING_DIR/$PROJECT_NAME.csh\"$||" > "$_csh_profile" |
|
|
|
|
|
|
|
|
sed -i "|/$LE_WORKING_DIR/$PROJECT_NAME\.csh/d" "$_csh_profile" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
_tcsh_profile="$HOME/.tcshrc" |
|
|
_tcsh_profile="$HOME/.tcshrc" |
|
|
if [ -f "$_tcsh_profile" ] ; then |
|
|
if [ -f "$_tcsh_profile" ] ; then |
|
|
text="$(cat $_tcsh_profile)" |
|
|
|
|
|
echo "$text" | sed "s|^.*\"$LE_WORKING_DIR/$PROJECT_NAME.csh\"$||" > "$_tcsh_profile" |
|
|
|
|
|
|
|
|
sed -i "|/$LE_WORKING_DIR/$PROJECT_NAME\.csh/d" "$_tcsh_profile" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
rm -f $LE_WORKING_DIR/$PROJECT_ENTRY |
|
|
rm -f $LE_WORKING_DIR/$PROJECT_ENTRY |
|
|
@ -3556,7 +3614,7 @@ _installOnline() { |
|
|
) |
|
|
) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
upgrade() { |
|
|
|
|
|
|
|
|
_upgrade() { |
|
|
if ( |
|
|
if ( |
|
|
_initpath |
|
|
_initpath |
|
|
export LE_WORKING_DIR |
|
|
export LE_WORKING_DIR |
|
|
@ -3986,9 +4044,9 @@ _process() { |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
case "${_CMD}" in |
|
|
case "${_CMD}" in |
|
|
install) install "$_nocron" ;; |
|
|
|
|
|
uninstall) uninstall "$_nocron" ;; |
|
|
|
|
|
upgrade) upgrade ;; |
|
|
|
|
|
|
|
|
install) _install "$_nocron" ;; |
|
|
|
|
|
uninstall) _uninstall "$_nocron" ;; |
|
|
|
|
|
upgrade) _upgrade ;; |
|
|
issue) |
|
|
issue) |
|
|
issue "$_webroot" "$_domain" "$_altdomains" "$_keylength" "$_certpath" "$_keypath" "$_capath" "$_reloadcmd" "$_fullchainpath" "$_pre_hook" "$_post_hook" "$_renew_hook" "$_local_address" |
|
|
issue "$_webroot" "$_domain" "$_altdomains" "$_keylength" "$_certpath" "$_keypath" "$_capath" "$_reloadcmd" "$_fullchainpath" "$_pre_hook" "$_post_hook" "$_renew_hook" "$_local_address" |
|
|
;; |
|
|
;; |
|
|
|