mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-20 11:58:39 +00:00
ipn/localapi: treat ACME "invalid" state as terminal, log more
Fixes #3975 Change-Id: Idb2cc8d4730e140939898c7dcc15c2014acca142 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
de72a1f9fc
commit
d19a63ddf6
@ -239,6 +239,7 @@ func (h *Handler) getCertPEM(ctx context.Context, logf logger.Logf, traceACME fu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !ok {
|
if !ok {
|
||||||
|
logf("starting SetDNS call...")
|
||||||
err = h.b.SetDNS(ctx, key, rec)
|
err = h.b.SetDNS(ctx, key, rec)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("SetDNS %q => %q: %w", key, rec, err)
|
return nil, fmt.Errorf("SetDNS %q => %q: %w", key, rec, err)
|
||||||
@ -256,26 +257,18 @@ func (h *Handler) getCertPEM(ctx context.Context, logf logger.Logf, traceACME fu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wait0 := time.Now()
|
|
||||||
orderURI := order.URI
|
orderURI := order.URI
|
||||||
for {
|
order, err = ac.WaitOrder(ctx, orderURI)
|
||||||
order, err = ac.WaitOrder(ctx, orderURI)
|
if err != nil {
|
||||||
if err == nil {
|
if ctx.Err() != nil {
|
||||||
break
|
return nil, ctx.Err()
|
||||||
}
|
}
|
||||||
if oe, ok := err.(*acme.OrderError); ok && oe.Status == acme.StatusInvalid {
|
if oe, ok := err.(*acme.OrderError); ok {
|
||||||
if time.Since(wait0) > 2*time.Minute {
|
logf("acme: WaitOrder: OrderError status %q", oe.Status)
|
||||||
return nil, errors.New("timeout waiting for order to not be invalid")
|
} else {
|
||||||
}
|
logf("acme: WaitOrder error: %v", err)
|
||||||
log.Printf("order invalid; waiting...")
|
|
||||||
select {
|
|
||||||
case <-time.After(5 * time.Second):
|
|
||||||
continue
|
|
||||||
case <-ctx.Done():
|
|
||||||
return nil, ctx.Err()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("WaitOrder: %v", err)
|
return nil, err
|
||||||
}
|
}
|
||||||
traceACME(order)
|
traceACME(order)
|
||||||
|
|
||||||
@ -296,10 +289,12 @@ func (h *Handler) getCertPEM(ctx context.Context, logf logger.Logf, traceACME fu
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logf("requesting cert...")
|
||||||
der, _, err := ac.CreateOrderCert(ctx, order.FinalizeURL, csr, true)
|
der, _, err := ac.CreateOrderCert(ctx, order.FinalizeURL, csr, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("CreateOrder: %v", err)
|
return nil, fmt.Errorf("CreateOrder: %v", err)
|
||||||
}
|
}
|
||||||
|
logf("got cert")
|
||||||
|
|
||||||
var certPEM bytes.Buffer
|
var certPEM bytes.Buffer
|
||||||
for _, b := range der {
|
for _, b := range der {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user