]> git.ipfire.org Git - thirdparty/dehydrated.git/commitdiff
automatic discovery of remote acme api version
authorLukas Schauer <lukas@schauer.so>
Mon, 5 Feb 2018 18:20:02 +0000 (19:20 +0100)
committerLukas Schauer <lukas@schauer.so>
Mon, 5 Feb 2018 18:20:28 +0000 (19:20 +0100)
dehydrated
docs/examples/config

index a7838f4cc3732d75a758c7f918b7b58a7337647a..93650ec332b8fadbc65095d88c81be461d3df5d9 100755 (executable)
@@ -93,6 +93,7 @@ verify_config() {
   if [[ -n "${IP_VERSION}" ]]; then
     [[ "${IP_VERSION}" = "4" || "${IP_VERSION}" = "6" ]] || _exiterr "Unknown IP version ${IP_VERSION}... cannot continue."
   fi
+  [[ "${API}" == "auto" || "${API}" == "1" || "${API}" == "2" ]] || _exiterr "Unsupported API version defined in config: ${API}"
 }
 
 # Setup default config values, search for and load configuration files
@@ -138,7 +139,7 @@ load_config() {
   AUTO_CLEANUP="no"
   DEHYDRATED_USER=
   DEHYDRATED_GROUP=
-  API=1
+  API="auto"
 
   if [[ -z "${CONFIG:-}" ]]; then
     echo "#" >&2
@@ -263,6 +264,12 @@ init_system() {
 
   # Get CA URLs
   CA_DIRECTORY="$(http_request get "${CA}")"
+
+  # Automatic discovery of API version
+  if [[ "${API}" = "auto" ]]; then
+    grep -q newOrder <<< "${CA_DIRECTORY}" && API=2 || API=1
+  fi
+
   if [[ ${API} -eq 1 ]]; then
     # shellcheck disable=SC2015
     CA_NEW_CERT="$(printf "%s" "${CA_DIRECTORY}" | get_json_string_value new-cert)" &&
index a14abaf1e5b17ce1b0d79291fe92ca306e68334d..7d6497af2063e45cba8a55c05f4a39f6799ca178 100644 (file)
 # Automatic cleanup (default: no)
 #AUTO_CLEANUP="no"
 
-# ACME API version (default: 1)
-#API=1
+# ACME API version (default: auto)
+#API=auto