Fix empty finalize URL when resuming a saved DNS-manual order

The decision to resume a pending order is keyed on Le_Vlist, but the
decision to keep Le_OrderFinalize/Le_LinkOrder was keyed on the webroot
being exactly "dns". Any other webroot with a saved Le_Vlist skipped
newOrder and then finalized against an empty URL.

Key both on Le_Vlist, and always clear Le_LinkCert, which is per-run
state that is never read back from the saved domain conf.

Fixes #7177
This commit is contained in:
neil committed 2026-08-05 19:53:52 +08:00
1 parent b4925052dd
commit 5e6c263211
1 file changed
+9 -2
+9 -2
View File
@@ -4949,11 +4949,18 @@ issue() {
if [ -z "$_ACME_IS_RENEW" ]; then if [ -z "$_ACME_IS_RENEW" ]; then
_initpath "$_main_domain" "$_key_length" _initpath "$_main_domain" "$_key_length"
mkdir -p "$DOMAIN_PATH" mkdir -p "$DOMAIN_PATH"
elif ! _hasfield "$_web_roots" "$W_DNS"; then elif [ -z "$Le_Vlist" ]; then
# Whether the saved order is resumed is decided by Le_Vlist below, so key
# this on Le_Vlist too. With no pending order to resume a new one is
# created, and a stale order link from the previous issuance must not be
# reused. https://github.com/acmesh-official/acme.sh/issues/3635
Le_OrderFinalize="" Le_OrderFinalize=""
Le_LinkOrder="" Le_LinkOrder=""
Le_LinkCert=""
fi fi
# Per-run state only: it is set after finalize and never read back from the
# saved domain conf. Carrying it over would make a run that gives up while
# the order is still 'processing' download the previous certificate again.
Le_LinkCert=""
if _hasfield "$_web_roots" "$W_DNS" && [ -z "$FORCE_DNS_MANUAL" ]; then if _hasfield "$_web_roots" "$W_DNS" && [ -z "$FORCE_DNS_MANUAL" ]; then
_err "$_DNS_MANUAL_ERROR" _err "$_DNS_MANUAL_ERROR"
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.