acme-acmesh: use validation_method option instead of guessing

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>
This commit is contained in:
Sergey Ponomarev 2024-02-28 22:13:47 +02:00 committed by Toke Høiland-Jørgensen
parent 7d07c75154
commit 4bec28b4d1
2 changed files with 14 additions and 7 deletions

View 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)?

View 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 "$CHALLENGE_DIR"
set -- "$@" --webroot "$CHALLENGE_DIR"
fi
;;
*)
log err "Unsupported validation_method $validation_method"
;;
esac
set -- "$@" --issue --home "$state_dir"