acme-acmesh: use validation_method option instead of guessing
authorSergey Ponomarev <stokito@gmail.com>
Wed, 28 Feb 2024 20:13:47 +0000 (22:13 +0200)
committerToke Høiland-Jørgensen <toke@toke.dk>
Fri, 3 May 2024 21:26:00 +0000 (23:26 +0200)
The new validation_method option can be: dns, webroot or standalone.
Previously we guessed the challenge type:
1. if the DNS provider is specified then it's dns
2. if standalone=1
3. fallback to webroot

The logic is preserved and if the validation_method wasn't set explicitly we'll guess it in old manner.

Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
net/acme-acmesh/Makefile
net/acme-acmesh/files/hook.sh

index efbed1852560a26c7d1c79945b3ff9c11a48b7a9..5d2f0d7654e5db52b938c2e2dbfd3ca9a9bb3597 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acme-acmesh
 PKG_VERSION:=3.0.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/acmesh-official/acme.sh/tar.gz/$(PKG_VERSION)?
index 99d705aa87252de578e9b2d4f58796564761f3ba..de9b7c6d712e511ed76f15d003318c45eadf77f0 100644 (file)
@@ -56,12 +56,12 @@ get)
                ;;
        esac
 
-       log info "Running ACME for $main_domain"
+       log info "Running ACME for $main_domain with validation_method $validation_method"
 
        if [ -e "$domain_dir" ]; then
                if [ "$staging" = 0 ] && grep -q "acme-staging" "$domain_dir/$main_domain.conf"; then
                        mv "$domain_dir" "$domain_dir.staging"
-                       log info "Certificates are previously issued from a staging server, but staging option is diabled, moved to $domain_dir.staging."
+                       log info "Certificates are previously issued from a staging server, but staging option is disabled, moved to $domain_dir.staging."
                        staging_moved=1
                else
                        set -- "$@" --renew --home "$state_dir" -d "$main_domain"
@@ -107,7 +107,8 @@ get)
                set -- "$@" --days "$days"
        fi
 
-       if [ "$dns" ]; then
+       case "$validation_method" in
+       "dns")
                set -- "$@" --dns "$dns"
                if [ "$dalias" ]; then
                        set -- "$@" --domain-alias "$dalias"
@@ -120,12 +121,18 @@ get)
                if [ "$dns_wait" ]; then
                        set -- "$@" --dnssleep "$dns_wait"
                fi
-       elif [ "$standalone" = 1 ]; then
+               ;;
+       "standalone")
                set -- "$@" --standalone --listen-v6
-       else
+               ;;
+       "webroot")
                mkdir -p "$WEBROOT"
                set -- "$@" --webroot "$WEBROOT"
-       fi
+               ;;
+       *)
+               log err "Unsupported validation_method $validation_method"
+               ;;
+       esac
 
        set -- "$@" --issue --home "$state_dir"