mirror of
https://github.com/acmesh-official/acme.sh.git
synced 2026-10-21 21:31:51 +00:00
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:
1 parent
b4925052dd
commit
5e6c263211
1 file changed
+9
-2
@@ -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"
|
||||||
|
|||||||