DNS-PERSIST-01: what it is, who supports it
Short answer
DNS-PERSIST-01 lets one TXT record, at _validation-persist.example.com, authorize one certificate authority account for that name, for as long as the record stays. Renewals then need no DNS changes.
As of October 24, 2026, Google Trust Services’ public CA supports it: it announced on September 28, 2026 that it “now supports” the method. Let’s Encrypt offers it on its staging server only, and hasn’t announced a production date.
The standard is still an IETF draft, and its newest version changes the record’s format. Records written for one version may need rewriting.
However you validate, the SSL certificate checker shows the certificate your site actually serves: issuer, names and expiry date. Free, no account. Check a certificate
Where you can use it
As of October 24, 2026:
| Who | Status | Source |
|---|---|---|
| CA/Browser Forum rules | Allowed since November 10, 2025, as method 3.2.2.4.22, “DNS TXT Record with Persistent Value” | Baseline Requirements, ballot SC088 |
| Google Trust Services | Supported on its public CA: it “now supports” the method, it said on September 28, 2026, on draft version 01 | GTS announcement |
| Let’s Encrypt, staging | Offered: a test order we created on October 24, 2026 listed it | Our own request, below |
| Let’s Encrypt, production | Not announced | Let’s Encrypt’s staff, June 25, 2026 |
Let’s Encrypt announced its plans on February 18, 2026, aiming for staging in “late Q1 2026” and production “some time in Q2 2026”. On June 25, its staff wrote: “We will not be deploying dns-persist-01 until” a question about binding the record to the account, issue 64 in the draft’s repository, “is resolved.” That issue was closed on September 23, 2026, as resolved by the draft’s version 02, published September 20, which changed the record format. Let’s Encrypt hasn’t announced a production date since.
This is the challenge Let’s Encrypt’s staging server offered when we created a test order for boringutils.com on October 24, 2026. We didn’t answer it, so nothing was validated or issued:
{
"issuer-domain-names": [
"letsencrypt.org"
],
"status": "pending",
"type": "dns-persist-01",
"url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall/358318703/6051120363/sUUwsw"
}
The same order also offered dns-01, http-01 and tls-alpn-01.
What the record looks like
The record lives at _validation-persist. plus the name being validated, and its value names the CA and your account. Google Trust Services documents this example, for “example.com and subdomains” and the account https://pki.goog/acct/12345678, shown here as a zone file line:
_validation-persist.example.com. TXT "pki.goog; accounturi=https://pki.goog/acct/12345678; policy=wildcard"
The parts:
- The CA’s issuer domain name comes first:
pki.googfor Google Trust Services,letsencrypt.orgfor Let’s Encrypt. Each CA reads only the records with its own name, so you can authorize several CAs with one record each. accounturiidentifies the one ACME account allowed to use the record.policy=wildcard, optional, extends the record to wildcard certificates and every subdomain: “example.com, *.example.com, www.example.com, and any other subdomain of example.com” (draft 02, section 5.1). Without it, the record covers only the exact name.persistUntil, optional, is a Unix timestamp after which the CA must stop using the record for new validations. Certificates already issued keep working.
The CA/Browser Forum’s rule describes the same record: placed at “_validation-persist.[Authorization Domain Name]”, with an accounturi that is required and a persistUntil that is optional. It also caps how long a CA may rely on one check: “10 days as the maximum validation data reuse period” for this method. So a certificate requested more than 10 days after the CA’s last check needs a fresh look at the record, and the record has to still be there.
Which draft version
The method is defined in draft-ietf-acme-dns-persist, a working document of the IETF’s ACME working group. Its latest version, 02, is dated September 20, 2026. Two versions matter today:
- Draft 01 (March 24, 2026) puts the account’s URL in
accounturiin plain text, as in the example above. Google Trust Services implements this version and says it “will not make changes unless required by a final IETF standard.” - Draft 02 replaces it with a hashed value that binds the account to the domain, and states that the old form “is no longer accepted”. Its example record:
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/account-hash/"
"sha-256/5SQm7n6tPh2-PlLbCKGnViTXX5z19SCN4cPGQHSk-kw")
So a record that works with one CA today may need rewriting when that CA moves to a later version. Let your ACME client generate it, and follow your CA’s documentation for the exact format.
ACME clients
- lego added DNS-PERSIST-01 in v5.0.0 (May 11, 2026), updated to draft 01.
- acme.sh added it in 3.1.4 (July 17, 2026), with a
--dns-persist-daysoption. - Certbot doesn’t support it as of version 5.8.0: its changelog has no entry for it.
What it changes for security
With DNS-01, a renewal needs write access to your DNS, so DNS API credentials end up on every server that renews. A persistent record needs DNS access once, at setup. Let’s Encrypt sums up the trade: “because the authorization record persists over time, protecting the ACME account key becomes the central concern.” Anyone with that account key can get certificates for the name for as long as the record exists.
To withdraw it, the draft gives two ways (section 7.11): delete the TXT record, after which new validations fail once resolver caches expire, or deactivate the ACME account, which takes effect at once. If you use persistUntil, put the date in a calendar: Let’s Encrypt warns that the record “must be updated or replaced before it expires.”
Sources
All sources were checked on October 24, 2026. The staging challenge comes from our own request on that date.
- draft-ietf-acme-dns-persist, IETF ACME working group: version 01 of March 24, 2026 and version 02 of September 20, 2026, sections 4.1, 5.1 and 7.11.
- Baseline Requirements for the Issuance and Management of Publicly-Trusted TLS Server Certificates, CA/Browser Forum, version 2.3.1: section 3.2.2.4.22, added by ballot SC088 (adopted October 9, 2025, effective November 10, 2025).
- DNS-PERSIST-01: A New Model for DNS-based Challenge Validation, Let’s Encrypt, February 18, 2026.
- Dns-persist-01 deployment status and timeline, Let’s Encrypt Community Support, staff reply of June 25, 2026, and issue 64 in the draft’s repository, closed September 23, 2026.
- September 2026: Google Trust Services Supports ACME DNS-PERSIST-01 Challenge, Google Trust Services, September 28, 2026.
- Client release notes: lego v5.0.0, acme.sh 3.1.4 and Certbot’s changelog.