]> git.ipfire.org Git - thirdparty/dehydrated.git/commitdiff
make default PRIVATE_KEY and WELLKNOWN relative to BASEDIR, even if BASEDIR is overri... 40/head
authorAxel Burri <axel@tty0.ch>
Sat, 12 Dec 2015 14:41:34 +0000 (15:41 +0100)
committerAxel Burri <axel@tty0.ch>
Sat, 12 Dec 2015 14:50:01 +0000 (15:50 +0100)
config.sh.example
letsencrypt.sh

index 21f22974b136968f598b61430cd90902c5c2c6e7..b58356e8130cf283f8bd47f48cafeb82adfc061e 100644 (file)
 # Path to license agreement (default: https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf)
 #LICENSE="https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf"
 
-# Output directory for challenge-tokens to be served by webserver or deployed in HOOK (default: $SCRIPTDIR/.acme-challenges)
-#WELLKNOWN="${SCRIPTDIR}/.acme-challenges"
-
 # Base directory for account key, generated certificates and list of domains (default: $SCRIPTDIR -- uses config directory if undefined)
 #BASEDIR=$SCRIPTDIR
 
-# Location of private account key
-#PRIVATE_KEY=${BASEDIR}/private_key.pem
+# Output directory for challenge-tokens to be served by webserver or deployed in HOOK (default: $BASEDIR/.acme-challenges)
+#WELLKNOWN="${BASEDIR}/.acme-challenges"
+
+# Location of private account key (default: $BASEDIR/private_key.pem)
+#PRIVATE_KEY="${BASEDIR}/private_key.pem"
 
 # Default keysize for private keys (default: 4096)
 #KEYSIZE="4096"
index bd07aab07f3f781d77033ffa962d92efbee8196e..69aa4a668e6a3e1c19993ca0e95686820b2ef07f 100755 (executable)
@@ -16,14 +16,26 @@ CA="https://acme-v01.api.letsencrypt.org/directory"
 LICENSE="https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf"
 HOOK=
 RENEW_DAYS="14"
-PRIVATE_KEY=${BASEDIR}/private_key.pem
+PRIVATE_KEY=
 KEYSIZE="4096"
-WELLKNOWN="${SCRIPTDIR}/.acme-challenges"
+WELLKNOWN=
 PRIVATE_KEY_RENEW="no"
 OPENSSL_CNF="$(openssl version -d | cut -d'"' -f2)/openssl.cnf"
 ROOTCERT="lets-encrypt-x1-cross-signed.pem"
 CONTACT_EMAIL=
 
+set_defaults() {
+  # Default config variables depending on BASEDIR
+  if [[ -z "${PRIVATE_KEY}" ]]; then
+    PRIVATE_KEY="${BASEDIR}/private_key.pem"
+  fi
+  if [[ -z "${WELLKNOWN}" ]]; then
+    WELLKNOWN="${BASEDIR}/.acme-challenges"
+  fi
+
+  LOCKFILE="${BASEDIR}/lock"
+}
+
 init_system() {
   # Check for config in various locations
   if [[ -z "${CONFIG:-}" ]]; then
@@ -52,9 +64,14 @@ init_system() {
   # Remove slash from end of BASEDIR. Mostly for cleaner outputs, doesn't change functionality.
   BASEDIR="${BASEDIR%%/}"
 
-  # Lockfile handling (prevents concurrent access)
-  LOCKFILE="${BASEDIR}/lock"
+  # Check BASEDIR and set default variables
+  if [[ ! -d "${BASEDIR}" ]]; then
+    echo "ERROR: BASEDIR does not exist: ${BASEDIR}"
+    exit 1
+  fi
+  set_defaults
 
+  # Lockfile handling (prevents concurrent access)
   set -o noclobber
   if ! { date > "${LOCKFILE}"; } 2>/dev/null; then
     echo "  + ERROR: Lock file '${LOCKFILE}' present, aborting." >&2