Certificate automation

How to Use ACME (Certbot, acme.sh) with a Paid SSL Certificate

Certbot and acme.sh are not only for free certificates. Connect them to a paid certificate authority with External Account Binding and let renewals run on their own.

ACME works with paid certificates, too

Yes, you can use Certbot, acme.sh and other ACME clients with a paid SSL certificate. ACME (Automatic Certificate Management Environment, the protocol defined in RFC 8555) is not tied to Let’s Encrypt. Any certificate authority (CA) can run an ACME server, and several commercial CAs do.

The main difference in an ACME paid SSL certificate setup is one extra step: External Account Binding (EAB). Your CA gives you a key ID and an HMAC key, and your client sends them when it registers. That links the client to your paid account, so the CA knows which plan, products and organization details apply.

After that, the workflow feels the same as with a free CA. The client proves domain control, downloads the certificate, installs it and renews it on a schedule.

Automation is one part of the job

ACME renews certificates. You still need an inventory, expiry alerts and an owner for every certificate. See how the pieces fit together before you roll ACME out across servers.

Plan your certificate workflow

Key facts

ItemWhat it means for you
ProtocolACME, standardized as RFC 8555 (2019). The same protocol Let’s Encrypt uses.
Account linkExternal Account Binding: a key ID plus an HMAC key from your CA account.
Common clientsCertbot and acme.sh both support EAB through command-line options.
ValidationDV through HTTP-01 or DNS-01 challenges. OV only where the CA supports it for a pre-validated organization.
RenewalThe client renews on a schedule and can run a hook to reload your web server.

How an ACME paid SSL certificate setup works

An ACME paid SSL certificate setup differs from Let’s Encrypt in three places: the server address, the account binding and the product behind it. Everything else, including the challenge types, stays the same.

Let’s Encrypt free SSL certificates via ACME need no account. Your client simply points at the public Let’s Encrypt directory. A commercial CA instead gives you its own directory URL (the ACME endpoint your client talks to) inside your account, and it only accepts clients that present valid EAB credentials.

AspectFree ACME CA (e.g. Let’s Encrypt)Paid ACME CA
AccountAnonymous key pairBound to your CA account with EAB
Directory URLPublic, the client defaultProvided in your account; you set it with a flag
Validation levelsDV onlyDV; OV on some products
SupportCommunity forumsCA and reseller support
BillingNonePlan or subscription with the CA or reseller

Choosing between a free and a paid CA is a separate decision. This page assumes you have chosen a paid product and focuses on the hands-on setup.

What is External Account Binding (EAB)?

External Account Binding is an ACME feature that links a new ACME client account to an existing account at the CA. You receive two values, a key ID (KID) and an HMAC key, and the client uses them once during registration to sign a binding request.

Without EAB, a commercial CA could not tell which customer an ACME request belongs to. With it, every certificate the client orders lands in your account, under your plan and your organization data. EAB is defined in section 7.3.4 of RFC 8555.

Tip: Treat the HMAC key like a password. Do not commit it to a repository or paste it into a ticket. Some providers issue EAB credentials that work only for one registration, so generate a fresh pair for each server or client if your CA asks for it.

Set up a paid ACME certificate in four steps

  1. Order an ACME-enabled product

    Choose a certificate or plan that includes ACME access, such as an ACME Certificate-as-a-Service or Plan + Automate product.

  2. Copy the directory URL and EAB values

    In your CA account, create ACME credentials. Note the directory URL, the key ID and the HMAC key.

  3. Register your ACME client

    Run Certbot or acme.sh with the directory URL and the EAB options. Registration happens once per client account.

  4. Request, install and test renewal

    Order the certificate, confirm it serves correctly, then make sure the scheduled renewal and reload hook work.

Certbot SSL certificate with a paid CA

Certbot works with a paid CA as soon as you pass three options: --server for the CA’s directory URL, --eab-kid for the key ID and --eab-hmac-key for the HMAC key. Without --server, Certbot talks to Let’s Encrypt, because that is its default.

A typical first request with the webroot method looks like this. Replace the placeholders with the values from your account:

sudo certbot certonly --webroot -w /var/www/html \
  -d example.com -d www.example.com \
  --server ACME_DIRECTORY_URL_FROM_YOUR_ACCOUNT \
  --eab-kid YOUR_KEY_ID \
  --eab-hmac-key YOUR_HMAC_KEY \
  -m [email protected] --agree-tos

certonly obtains the certificate without changing your web server configuration. Use the Apache or Nginx plugin instead if you want Certbot to install it as well. For DNS-based validation, use a DNS plugin and --preferred-challenges dns.

acme.sh with EAB

acme.sh registers the account in a separate step. Its default CA is not your paid CA, so always pass --server:

acme.sh --register-account -m [email protected] \
  --server ACME_DIRECTORY_URL_FROM_YOUR_ACCOUNT \
  --eab-kid YOUR_KEY_ID --eab-hmac-key YOUR_HMAC_KEY

acme.sh --issue --server ACME_DIRECTORY_URL_FROM_YOUR_ACCOUNT \
  -d example.com -d www.example.com -w /var/www/html

Then use acme.sh --install-cert with a --reloadcmd so the certificate is copied to its final path and your server reloads after each renewal.

Does ACME work for OV certificates?

Sometimes. Some CAs let ACME issue organization validated (OV) certificates once your organization has been validated in the account in advance; others offer ACME for DV only. Check the product description or ask support before you plan an OV rollout on ACME.

The reason is simple: ACME can prove domain control automatically, but it cannot check business registries or call your phone number. That organization check happens once, outside ACME. As long as the validation is still valid, the CA can attach it to certificates your client orders. Since March 15, 2026, the CA/Browser Forum caps reuse of that organization data at 398 days, so plan for a periodic re-check.

Validation levelWhat ACME automatesWhat happens outside ACME
DVDomain control check and issuanceNothing
OV (where supported)Domain control check and issuanceOrganization pre-validation in your CA account
EVVaries by CA; often not offeredExtended checks per the EV Guidelines

Certificates and plans built for ACME automation

How ACME helps with 47-day certificates

ACME turns renewal and domain validation into a scheduled job, so shorter lifetimes stop being a manual workload. Under CA/Browser Forum ballot SC-081, the maximum lifetime of a public TLS certificate is 200 days from March 15, 2026, 100 days from March 15, 2027 and 47 days from March 15, 2029.

Domain validation can also be reused for less time: 200 days as of October 2026, falling to 10 days from 2029. A client that re-proves domain control on every order handles both changes without extra steps. The full schedule and what it means for planning is covered in our guide on how long SSL certificates last.

Newer clients can also use ACME Renewal Information (ARI), published as RFC 9773 in June 2025. With ARI, the CA can suggest when a certificate should be renewed, for example ahead of a planned revocation. Support depends on your CA and client version.

Tip: Prefer DNS-01 validation through a DNS provider API when you run several servers or wildcard names. HTTP-01 needs port 80 open on every server that answers for the domain.

Automate renewal and fix common ACME errors

Renewal is where ACME pays off. Certbot’s renew command reuses the options from the original request and renews certificates that are close to expiry. acme.sh creates a daily cron job at install that checks and renews certificates as needed.

  • Confirm the scheduled task exists (systemd timer or cron) on every server.
  • Add a deploy hook, such as --deploy-hook "systemctl reload nginx", so the new certificate is actually served.
  • Set an alert outside the server, so a broken renewal does not go unnoticed.
Error or symptomLikely causeFix
EAB or account binding rejectedWrong or already used key ID/HMAC keyGenerate new EAB credentials in your account and register again
Certificate issued by the wrong CA--server missing, client used its defaultRe-run the request with your CA’s directory URL
HTTP-01 challenge failsPort 80 blocked, redirect to another host, or CDN in frontOpen port 80 or switch to DNS-01
Order refusedPlan expired or domain not allowed on the productCheck plan status and covered domains with your provider
New certificate not visibleWeb server not reloadedAdd a deploy or reload hook

If a certificate already expired, or you are not using ACME yet, follow the manual steps to renew an SSL certificate.

Choosing a product for ACME

For most servers, a DV certificate is the natural fit for ACME, because the whole validation runs inside the protocol. If you only need encryption and a fast, fully automated path, start with domain validated (DV) SSL. The Sectigo ACME Certificate-as-a-Service (DV) and the GeoTrust and RapidSSL Plan + Automate products shown above are designed for automated issuance; confirm the supported domains and clients on each product page.

ACME covers issuance and renewal. Tracking which certificates exist, who owns them and when they expire is the wider job of SSL certificate management.

Put ACME into a complete certificate workflow

Inventory, monitoring, alerts and automation work best together. Start with the management overview, then roll ACME out server by server.

Plan your certificate workflow

Products

Categories

  • DV SSL Certificates

    Fast domain validation for websites that primarily need HTTPS and do not require organization-level…

    from $8.99

Related articles

Frequently asked questions

Can I use Certbot with a paid certificate?

Yes. Certbot works with any CA that runs an ACME server. Pass the CA’s directory URL with `--server` and the External Account Binding credentials with `--eab-kid` and `--eab-hmac-key` when you register. Certbot then requests, installs and renews certificates from your paid account instead of Let’s Encrypt. Check that your product includes ACME access before you start.

What is External Account Binding (EAB)?

External Account Binding is an ACME feature, defined in RFC 8555, that links an ACME client to an existing account at a certificate authority. The CA gives you a key ID and an HMAC key. Your client uses them during registration, so every certificate it orders is billed to and managed in your paid account, with your plan and organization data.

Does ACME work for OV certificates?

It can, depending on the CA and product. ACME automates the domain check, but organization validation still happens outside the protocol. Some CAs let ACME issue OV certificates once your organization is pre-validated in the account; others offer ACME for DV only. Verify this on the product page or with support before you plan an OV rollout.

How does ACME help with 47-day certificates?

ACME automates both renewal and domain control validation. Under CA/Browser Forum ballot SC-081, maximum certificate lifetime drops to 47 days from March 15, 2029, and domain validation reuse to 10 days. An ACME client renews on a schedule and re-proves domain control each time, so shorter lifetimes do not add manual work.