Renewal Timing and Configuration
This page covers where and how to configure renewal timing—ARI (recommended) in [service], legacy fixed-window settings, CLI enroll flags, and production vs. sandbox defaults.
Production: use ARI. Set auto_ari_renew = true in TOML and confirm a non-zero acmeAriId after enroll. The auto_renew_days fixed-window model is a legacy fallback when ARI is off—not recommended for new deployments.
For how renewals behave over time (service loop, ARI replacement orders, eligibility rules), see Understanding Automated Renewals.
Acronyms used on this page
| Term | Meaning |
|---|---|
| ARI | ACME Renewal Information — optional CA-directed schedule for when to renew a certificate |
| CA | Certificate Authority — DigiCert, which issues your certificates and provides renewal timing via ARI |
| CLI | Command-Line Interface — run `dc-acme request enroll` with explicit flags instead of loading settings from `dc-acme.toml` |
| TOML | Tom's Obvious, Minimal Language — the config file format used by `dc-acme.toml` |
| DCV | Domain Control Validation — proof that you control a domain name (via a DNS-01 or HTTP-01 challenge) |
Where settings live
Renewal behavior is configured in:
dc-acme.toml[service]section (loaded with--use-default-configor--config)- CLI flags on
request enroll— for most settings, CLI overrides TOML per key. Exception: with--use-default-config,auto_ari_renewin TOML controls ARI job registration; CLI--auto-ari-renewand--auto-renewdo not override TOML for renewal mode (see Configuration — Renewal settings).
| Location | Path |
|---|---|
| Linux | /var/digicert/acme-client/config/dc-acme.toml |
| Windows | C:\Program Files\DigiCert\AcmeClient\config\dc-acme.toml |
Settings reference
TOML ([service]) |
CLI enroll flag | Purpose |
|---|---|---|
auto_ari_renew |
--auto-ari-renew |
Recommended — register an ARI job for CA-directed reissue timing |
auto_renew |
--auto-renew |
Legacy fixed-window automatic renewal (only when ARI is off) |
auto_renew_days |
--auto-renew-days |
Legacy — days before expiry to attempt renewal (default 30; ignored when ARI registers) |
With --use-default-config, TOML [service] controls renewal mode for each certificate. CLI flags override TOML for other keys (EAB, challenge, --cn, etc.) but not for --auto-ari-renew / --auto-renew.
Default settings
New installations ship with renewals disabled:
[service]
auto_renew = false
auto_ari_renew = false
auto_renew_days = 30
This conservative default prevents unexpected reissues on fresh installs. You must explicitly enable renewal automation and pass the appropriate enroll flags.
Recommended configurations
Production automation (ARI — recommended)
Match Production CLI Examples and Configuration:
[service]
auto_ari_renew = true # required for production — CA-directed reissue timing
auto_renew = true # keep enabled; ignored for certs with an ARI job
auto_renew_days = 30 # legacy — not used when auto_ari_renew = true
Enroll with --use-default-config. TOML auto_ari_renew = true registers an ARI job for each certificate (non-zero acmeAriId in request list). You do not need to tune a day count—DigiCert directs timing via ARI.
sudo dc-acme request enroll \
--use-default-config \
--directory-url "https://one.digicert.com/mpki/api/v1/acme/v2/directory" \
--cn "example.com"
CLI-only production enrolls (no --use-default-config) should still pass --auto-ari-renew=true explicitly.
Sandbox or one-shot enrolls (no automatic reissues)
CLI-only (sandbox walkthroughs — no --use-default-config):
sudo dc-acme request enroll \
--directory-url "https://one.digicert.com/mpki/api/v1/acme/v2/directory" \
--auto-ari-renew=false \
--cn "test.example.com" \
...
Config-based enroll: set TOML auto_ari_renew = false before enroll (restart the service if needed). Passing --auto-ari-renew=false on the CLI does not override TOML true when --use-default-config is used.
Legacy fixed window only (not recommended)
Use only for existing hosts that cannot enable ARI, or for special testing. GeoCerts does not recommend this for new production automation.
[service]
auto_renew = true
auto_ari_renew = false
auto_renew_days = 30 # legacy “renew N days before expiry” model
Enroll with --use-default-config. Confirm acmeAriId: 0 in request list after completion.
Legacy: what auto_renew_days means
auto_renew_days is part of the legacy fixed-window model—the older “renew ~N days before expiry” approach that predates ARI. It applies only when auto_ari_renew = false at enroll time (acmeAriId: 0 in request list).
auto_renew_days does not schedule renewal at an exact date and time. It defines the earliest point at which the client may attempt fixed-window renewal—a rolling window evaluated by the running service.
Example: a certificate expiring March 31 with auto_renew_days = 30 becomes eligible around March 1. The exact attempt time depends on when the service next evaluates conditions.
For production, enable ARI instead (auto_ari_renew = true). ARI adapts as certificate lifetimes and CA policy change; a static day count does not.
Renewal flags on enroll
CLI-only vs. --use-default-config:
- CLI-only — Omitting
--auto-ari-renewregisters an ARI job. Pass--auto-ari-renew=falsefor sandbox one-shot enrolls. --use-default-config— TOMLauto_ari_renewcontrols ARI registration. CLI--auto-ari-renew=falsedoes not override TOMLtrue. Set TOML tofalsefor one-shot or sandbox-style config-based enrolls.
Confirm with acmeAriId in request list after enroll — not dc-acme --defaults.
Operational factors that delay renewal
Even with correct configuration, renewal attempts may be delayed or fail because of:
- Too early — outside DigiCert’s renewal eligibility window (or ARI returns
Should renew now: false) - DNS or HTTP validation failures — DCV must succeed on every reissue
- Expired OV organization or domain validation — see Understanding Automated Renewals
- Host permission issues — challenge handler or installer cannot write files or reload the web server
- Account funding or billing — prepaid coverage or balance must support reissue
If a renewal attempt fails, the existing certificate remains valid until expiration. The client may retry; check service logs for details.
For renewals that create new billable orders instead of reissuing, see Auto-detection Rules and Unexpected new orders in Troubleshooting.
Verify configuration
- Review the
[service]section indc-acme.toml— this is the source of truth for renewal settings when you use--use-default-config - Confirm
DigicertAcmeClientis running - Run
sudo dc-acme request list—COMPLETEDstatus; checkacmeAriId(non-zero = ARI,0= legacy fixed window)
sudo systemctl status DigicertAcmeClient
sudo dc-acme request list
The client does not show a “next renewal date” in CLI output. Use CertCommand for expiration dates. See Understanding Automated Renewals.
Key takeaways
- Production:
auto_ari_renew = truein TOML +--use-default-configon enroll - Confirm ARI with non-zero
acmeAriIdinrequest list auto_renew_daysis legacy — only when ARI is off; not recommended for new deployments- Defaults are off; enable
auto_ari_renewexplicitly for production automation - Sandbox CLI-only:
--auto-ari-renew=false. Sandbox config-based: TOMLauto_ari_renew = false - With
--use-default-config, TOML controls ARI registration—not CLI--auto-ari-renew - No CLI renewal countdown—monitor expiration in CertCommand