Production CLI Examples

These pages show production certificate requests using the DigiCert ACME Client with command-line flags only. Do not pass --use-default-config on these examples—the client will not read dc-acme.toml.

Acronyms used on this page

Term Meaning
ACME Automated Certificate Management Environment — the protocol used to automate certificate issuance and renewal
ADU ACME Directory URL — the endpoint and credential profile you create in CertCommand under Automation > ACME Directory URLs
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`
EAB External Account Binding — Key ID and HMAC credentials that authenticate your ACME client to GeoCerts
DCV Domain Control Validation — proof that you control a domain name (via a DNS-01 or HTTP-01 challenge)
DAC DigiCert ACME Client — GeoCerts' recommended ACME client (`dc-acme`)
ARI ACME Renewal Information — optional CA-directed schedule for when to renew a certificate
DNS-01 DNS challenge — publish a `_acme-challenge` TXT record to prove domain control
HTTP-01 HTTP challenge — serve a token file on port 80 at `/.well-known/acme-challenge/`

Every production enroll needs

Pass these on every dc-acme request enroll command, regardless of which example you follow:

Flag Purpose
--directory-url GeoCerts ACME directory endpoint (same URL for sandbox and production)
--email Contact email for the ACME account
--eab-key / --eab-hmac EAB credentials from your production ACME Directory URL in CertCommand
--cn Common Name for the certificate—a domain name (FQDN), not an IP address (not stored in dc-acme.toml)
--auto-ari-renew=true Registers automatic CA-directed reissues and renewals for this certificate (ACME Renewal Information)—the expected default for production automation

Also set both challenge flags explicitly—for DNS-01, --challenge-type "dns-01" and --challenge-handler-name "default". Omitting --challenge-type defaults to HTTP-01 with the standalone handler, which is a common first-request failure.

For config-based enroll—shorter commands, shared settings across servers, secrets off the CLI—see Configuration (dc-acme.toml). Set auto_ari_renew = true in TOML and enroll with --use-default-config; confirm non-zero acmeAriId in request list.


Examples by stack and DCV method

Web server + validation method

Example Platform DCV Install
NGINX with DNS-01 Linux DNS-01 (Route 53) NGINX
NGINX with HTTP-01 Linux HTTP-01 NGINX
IIS with HTTP-01 Windows HTTP-01 IIS

More stack-specific examples (Apache, IIS with DNS-01, issue-without-install) will be added here over time.

Certificate shape

Example Use when
Wildcard certificates You need *.example.com (DNS-01 required)
Subject Alternative Names (SANs) You need additional hostnames on one certificate

After a successful production request

  1. Confirm COMPLETED in dc-acme request list and the order in CertCommand under Certificates > Orders.
  2. Verify HTTPS is live on your web server.
  3. Optional: Adopt dc-acme.toml for future requests on this or other servers—your first certificate already registered ARI when you passed --auto-ari-renew=true.
  4. Read Understanding Automated Renewals for how the background service renews certificates.

If something fails, see Verify and Diagnose ACME Requests.


← Back to Certificate Automation (ACME)