From fb41783885df481b575286a50293df17aaacfd14 Mon Sep 17 00:00:00 2001 From: Lukas Schauer Date: Mon, 5 Feb 2018 19:20:02 +0100 Subject: [PATCH] automatic discovery of remote acme api version --- dehydrated | 9 ++++++++- docs/examples/config | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dehydrated b/dehydrated index a7838f4..93650ec 100755 --- a/dehydrated +++ b/dehydrated @@ -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)" && diff --git a/docs/examples/config b/docs/examples/config index a14abaf..7d6497a 100644 --- a/docs/examples/config +++ b/docs/examples/config @@ -111,5 +111,5 @@ # Automatic cleanup (default: no) #AUTO_CLEANUP="no" -# ACME API version (default: 1) -#API=1 +# ACME API version (default: auto) +#API=auto -- 2.47.2