commit
						8636a15695
					
				| 
						 | 
					@ -321,7 +321,7 @@ acme.sh --renew -d example.com --force --ecc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 11. How to upgrade `acme.sh`
 | 
					# 11. How to upgrade `acme.sh`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
acme.sh is in constant developement, so it's strongly recommended to use the latest code.
 | 
					acme.sh is in constant development, so it's strongly recommended to use the latest code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You can update acme.sh to the latest code:
 | 
					You can update acme.sh to the latest code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								acme.sh
								
								
								
								
							
							
						
						
									
										8
									
								
								acme.sh
								
								
								
								
							| 
						 | 
					@ -406,8 +406,10 @@ _getfile() {
 | 
				
			||||||
#Usage: multiline
 | 
					#Usage: multiline
 | 
				
			||||||
_base64() {
 | 
					_base64() {
 | 
				
			||||||
  if [ "$1" ]; then
 | 
					  if [ "$1" ]; then
 | 
				
			||||||
 | 
					    _debug3 "base64 multiline:'$1'"
 | 
				
			||||||
    $OPENSSL_BIN base64 -e
 | 
					    $OPENSSL_BIN base64 -e
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
 | 
					    _debug3 "base64 single line."
 | 
				
			||||||
    $OPENSSL_BIN base64 -e | tr -d '\r\n'
 | 
					    $OPENSSL_BIN base64 -e | tr -d '\r\n'
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -932,6 +934,8 @@ _calcjwk() {
 | 
				
			||||||
    modulus=$($OPENSSL_BIN rsa -in "$keyfile" -modulus -noout | cut -d '=' -f 2)
 | 
					    modulus=$($OPENSSL_BIN rsa -in "$keyfile" -modulus -noout | cut -d '=' -f 2)
 | 
				
			||||||
    _debug3 modulus "$modulus"
 | 
					    _debug3 modulus "$modulus"
 | 
				
			||||||
    n="$(printf "%s" "$modulus" | _h2b | _base64 | _urlencode)"
 | 
					    n="$(printf "%s" "$modulus" | _h2b | _base64 | _urlencode)"
 | 
				
			||||||
 | 
					    _debug3 n "$n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    jwk='{"e": "'$e'", "kty": "RSA", "n": "'$n'"}'
 | 
					    jwk='{"e": "'$e'", "kty": "RSA", "n": "'$n'"}'
 | 
				
			||||||
    _debug3 jwk "$jwk"
 | 
					    _debug3 jwk "$jwk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1913,7 +1917,7 @@ _setApache() {
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  _info "JFYI, Config file $httpdconf is backuped to $APACHE_CONF_BACKUP_DIR/$httpdconfname"
 | 
					  _info "JFYI, Config file $httpdconf is backuped to $APACHE_CONF_BACKUP_DIR/$httpdconfname"
 | 
				
			||||||
  _info "In case there is an error that can not be restored automatically, you may try restore it yourself."
 | 
					  _info "In case there is an error that can not be restored automatically, you may try restore it yourself."
 | 
				
			||||||
  _info "The backup file will be deleted on sucess, just forget it."
 | 
					  _info "The backup file will be deleted on success, just forget it."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #add alias
 | 
					  #add alias
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3780,7 +3784,7 @@ install() {
 | 
				
			||||||
  if [ -z "$NO_DETECT_SH" ]; then
 | 
					  if [ -z "$NO_DETECT_SH" ]; then
 | 
				
			||||||
    #Modify shebang
 | 
					    #Modify shebang
 | 
				
			||||||
    if _exists bash; then
 | 
					    if _exists bash; then
 | 
				
			||||||
      _info "Good, bash is found, so change the shebang to use bash as prefered."
 | 
					      _info "Good, bash is found, so change the shebang to use bash as preferred."
 | 
				
			||||||
      _shebang='#!/usr/bin/env bash'
 | 
					      _shebang='#!/usr/bin/env bash'
 | 
				
			||||||
      _setShebang "$LE_WORKING_DIR/$PROJECT_ENTRY" "$_shebang"
 | 
					      _setShebang "$LE_WORKING_DIR/$PROJECT_ENTRY" "$_shebang"
 | 
				
			||||||
      for subf in $_SUB_FOLDERS; do
 | 
					      for subf in $_SUB_FOLDERS; do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@ dns_ali_rm() {
 | 
				
			||||||
  _clean
 | 
					  _clean
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_get_root() {
 | 
					_get_root() {
 | 
				
			||||||
  domain=$1
 | 
					  domain=$1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ dns_aws_add() {
 | 
				
			||||||
  _aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>UPSERT</Action><ResourceRecordSet><Name>$fulldomain</Name><Type>TXT</Type><TTL>300</TTL><ResourceRecords><ResourceRecord><Value>\"$txtvalue\"</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
 | 
					  _aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>UPSERT</Action><ResourceRecordSet><Name>$fulldomain</Name><Type>TXT</Type><TTL>300</TTL><ResourceRecords><ResourceRecord><Value>\"$txtvalue\"</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
 | 
					  if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
 | 
				
			||||||
    _info "txt record updated sucess."
 | 
					    _info "txt record updated success."
 | 
				
			||||||
    return 0
 | 
					    return 0
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,7 +66,7 @@ dns_aws_rm() {
 | 
				
			||||||
  _aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>DELETE</Action><ResourceRecordSet><ResourceRecords><ResourceRecord><Value>\"$txtvalue\"</Value></ResourceRecord></ResourceRecords><Name>$fulldomain.</Name><Type>TXT</Type><TTL>300</TTL></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
 | 
					  _aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>DELETE</Action><ResourceRecordSet><ResourceRecords><ResourceRecord><Value>\"$txtvalue\"</Value></ResourceRecord></ResourceRecords><Name>$fulldomain.</Name><Type>TXT</Type><TTL>300</TTL></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
 | 
					  if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
 | 
				
			||||||
    _info "txt record deleted sucess."
 | 
					    _info "txt record deleted success."
 | 
				
			||||||
    return 0
 | 
					    return 0
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,7 @@ dns_aws_rm() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_get_root() {
 | 
					_get_root() {
 | 
				
			||||||
  domain=$1
 | 
					  domain=$1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -120,7 +120,7 @@ dns_cf_rm() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
#_acme-challenge.www.domain.com
 | 
					#_acme-challenge.www.domain.com
 | 
				
			||||||
#returns
 | 
					#returns
 | 
				
			||||||
# _sub_domain=_acme-challenge.www
 | 
					# _sub_domain=_acme-challenge.www
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -131,7 +131,7 @@ update_record() {
 | 
				
			||||||
  return 1
 | 
					  return 1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
#_acme-challenge.www.domain.com
 | 
					#_acme-challenge.www.domain.com
 | 
				
			||||||
#returns
 | 
					#returns
 | 
				
			||||||
# _sub_domain=_acme-challenge.www
 | 
					# _sub_domain=_acme-challenge.www
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -158,7 +158,7 @@ update_record() {
 | 
				
			||||||
  return 1 #error
 | 
					  return 1 #error
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
#_acme-challenge.www.domain.com
 | 
					#_acme-challenge.www.domain.com
 | 
				
			||||||
#returns
 | 
					#returns
 | 
				
			||||||
# _sub_domain=_acme-challenge.www
 | 
					# _sub_domain=_acme-challenge.www
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,7 +59,7 @@ dns_gd_rm() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
#_acme-challenge.www.domain.com
 | 
					#_acme-challenge.www.domain.com
 | 
				
			||||||
#returns
 | 
					#returns
 | 
				
			||||||
# _sub_domain=_acme-challenge.www
 | 
					# _sub_domain=_acme-challenge.www
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ dns_ispconfig_rm() {
 | 
				
			||||||
  _ISPC_credentials && _ISPC_login && _ISPC_rmTxt
 | 
					  _ISPC_credentials && _ISPC_login && _ISPC_rmTxt
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_ISPC_credentials() {
 | 
					_ISPC_credentials() {
 | 
				
			||||||
  if [ -z "${ISPC_User}" ] || [ -z "$ISPC_Password" ] || [ -z "${ISPC_Api}" ] || [ -z "${ISPC_Api_Insecure}" ]; then
 | 
					  if [ -z "${ISPC_User}" ] || [ -z "$ISPC_Password" ] || [ -z "${ISPC_Api}" ] || [ -z "${ISPC_Api_Insecure}" ]; then
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,7 +84,7 @@ dns_lua_rm() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
#_acme-challenge.www.domain.com
 | 
					#_acme-challenge.www.domain.com
 | 
				
			||||||
#returns
 | 
					#returns
 | 
				
			||||||
# _sub_domain=_acme-challenge.www
 | 
					# _sub_domain=_acme-challenge.www
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -81,7 +81,7 @@ dns_me_rm() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
#_acme-challenge.www.domain.com
 | 
					#_acme-challenge.www.domain.com
 | 
				
			||||||
#returns
 | 
					#returns
 | 
				
			||||||
# _sub_domain=_acme-challenge.www
 | 
					# _sub_domain=_acme-challenge.www
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@ dns_myapi_add() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Usage: fulldomain txtvalue
 | 
					#Usage: fulldomain txtvalue
 | 
				
			||||||
#Remove the txt record afer validation.
 | 
					#Remove the txt record after validation.
 | 
				
			||||||
dns_myapi_rm() {
 | 
					dns_myapi_rm() {
 | 
				
			||||||
  fulldomain=$1
 | 
					  fulldomain=$1
 | 
				
			||||||
  txtvalue=$2
 | 
					  txtvalue=$2
 | 
				
			||||||
| 
						 | 
					@ -32,4 +32,4 @@ dns_myapi_rm() {
 | 
				
			||||||
  _debug txtvalue "$txtvalue"
 | 
					  _debug txtvalue "$txtvalue"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,7 @@ EOF
 | 
				
			||||||
  return 0
 | 
					  return 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_checkKeyFile() {
 | 
					_checkKeyFile() {
 | 
				
			||||||
  if [ -z "${NSUPDATE_KEY}" ]; then
 | 
					  if [ -z "${NSUPDATE_KEY}" ]; then
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -182,7 +182,7 @@ dns_ovh_rm() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_ovh_authentication() {
 | 
					_ovh_authentication() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -130,7 +130,7 @@ notify_slaves() {
 | 
				
			||||||
  return 0
 | 
					  return 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
####################  Private functions bellow ##################################
 | 
					####################  Private functions below ##################################
 | 
				
			||||||
#_acme-challenge.www.domain.com
 | 
					#_acme-challenge.www.domain.com
 | 
				
			||||||
#returns
 | 
					#returns
 | 
				
			||||||
# _domain=domain.com
 | 
					# _domain=domain.com
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue