Advertisement
Signatures verified here, not just listed

DNSSEC Checker
Find out why validation is failing

Enter a domain and this tool takes the DNSKEY your zone publishes, recomputes the DS digest from it, and compares that with what your registry holds — then verifies the signature over your key set with the key it names. It also asks three independent validating resolvers what they make of the domain, and if they disagree with our own checks, it tells you that instead of calling the zone healthy.

Check DNSSEC for any domain

Enter the domain as it is registered. DNSSEC is configured once per zone, so a subdomain has no keys of its own — enter one and this DNSSEC test says so rather than reporting a fault that is not there.

Quick answer: how do I check DNSSEC on a domain?

Look for two things and check they agree. The zone must publish DNSKEY records, and the registry above it must publish a DS record whose digest matches one of those keys. If either is missing, DNSSEC is not protecting the domain; if both exist but the digest does not match, the domain will fail to resolve for anyone using a validating resolver. The check above recomputes that digest and verifies the signature over the key set.

Advertisement
Robert Harrison, OSINT & Network Utility Expert, on DNSSEC at TrustMyIP.com
Written & Verified By

Robert Harrison

OSINT & Network Utility Expert

Robert works on DNS, ports, SSL and the network utilities underneath them, helping administrators audit domain infrastructure and read what the protocol is actually reporting.

Before release the signature verifier was checked against a key pair generated in the test harness: a genuine signature verifies, flipping one byte of the signed record set makes it fail, and the same signature does not verify for a different owner name. It was then run against three domains that are deliberately broken for testing — dnssec-failed.org, rhybar.cz and servfail.nl — and each fault was named correctly, including the one that none of this tool’s own checks can see.

Last reviewed 23 September 2026 · Published 23 September 2026

View all articles by Robert Harrison
Advertisement

What DNSSEC Actually Does — and What It Does Not

DNSSEC adds a signature to every answer a zone gives out, so a resolver can tell whether what arrived is what the zone actually published. Without it, DNS has no way to know: a resolver asks a question into the network and believes whatever comes back. That is the weakness behind cache poisoning, and it is the one thing DNSSEC was built to close.

It is equally important to be clear about what it does not do. DNSSEC does not encrypt anything. Every query and every answer still travels in the clear, and anyone on the path can see which names you look up. Hiding the query is a different job done by DNS over HTTPS and DNS over TLS, which in turn say nothing about whether the answer is genuine. The two protect opposite halves of the same conversation, and a domain can use either, both or neither.

The mechanism is a chain. Your zone signs its records with its own keys. The registry above you — the operator of your domain’s extension — publishes a short fingerprint of one of those keys, called a DS record. The root zone does the same for the registry. A resolver that trusts the root can follow that chain down to your records and verify each link. Break any link and the resolver does not fall back to an unsigned answer: it refuses to answer at all. If you want the underlying query path first, our guide on how DNS resolves domain names to IPs covers it, and what IP spoofing is and how to detect it explains the class of attack this is defending against.

Advertisement

Worth knowing before you enable it: DNSSEC is all or nothing. A correctly signed zone is protected; an incorrectly signed zone is unreachable for everyone behind a validating resolver, which today includes the large public resolvers and many ISPs. There is no partial-credit state, which is why the check above separates “not signed” from “signed and broken” so firmly.

How to Read Your DNSSEC Check Result

The verdict is one of eleven states. Most tools in this category collapse several of them into a single red cross, which hides the difference between a domain that is simply not using DNSSEC and one that is signed and failing — situations that call for opposite responses.

VerdictWhat it meansWhat to do
DNSSEC workingDS matches a published key, the signature over the key set verifies, resolvers accept it.Nothing.
Covered by its zoneThe name has no keys of its own, but validating resolvers authenticate answers for it — it sits inside a signed zone rather than being one.Nothing. To see the keys, check the registered domain instead of the subdomain.
Not signedNo DS, no DNSKEY, and no resolver treats the answer as authenticated. Most domains are in this state.Nothing is broken. Enabling it is a choice, not a repair.
Signed but unlinkedThe zone publishes keys; the registry publishes no DS.Give the DS to your registrar. Until then the signing protects nobody.
Broken chain (DS with no keys)The registry vouches for a zone that publishes no keys.Urgent. The domain is failing everywhere. Restore the keys or remove the DS.
Broken chain (DS matches nothing)The DS names a key tag the zone does not publish, or the digest differs.Urgent. Publish the correct DS at the registrar.
Signature expiredThe signature over the key set has passed its expiry date.Urgent. Your signer has stopped running. Re-sign the zone.
Signature invalidThe mathematics does not hold against the key it names.Urgent. The zone data and the signatures are out of step.
Rejected by resolversOur checks pass, but validating resolvers still refuse the domain.Urgent. The break is deeper than the two links checked here — see the SERVFAIL section.
No such domainThe name is not registered, or has expired. There is nothing to sign.Check the spelling and the registration.
No verdictToo little came back to say anything — a timeout, or an answer too large for one UDP packet that the TCP retry did not finish.Try again. An honest blank beats a confident guess.

Two panels sit under the tables and they are the point of the page: Verified here lists what this tool computed itself, and Not verified here lists what it did not. A checker that does not tell you which is which is asking you to take its word for the whole thing.

Advertisement

The Chain of Trust, and the One Link That Usually Breaks

A zone publishes two kinds of key. The key signing key (KSK) signs the set of keys itself, and it is the one the parent vouches for. The zone signing key (ZSK) signs the ordinary records — your A records, your MX records, everything else. Splitting them means the zone signing key can be replaced as often as you like without ever touching the registrar.

The DS record at the registry is a digest of the key signing key. It is not a copy of the key: it is a short hash, so the registry holds something small and stable. This tool takes the DNSKEY your zone publishes right now, computes that digest itself, and compares the result with the DS the registry publishes, byte for byte. Two failures are possible and they are not the same thing:

  • The DS names a key tag your zone does not publish. The registry is vouching for a key that no longer exists — almost always a key rollover where the new DS never reached the registrar.
  • A key with that tag exists, but the digest differs. The tag is only sixteen bits, so two different keys can share one. This is the rarer and more confusing case, and it is invisible unless the digest is actually recomputed.

Both produce the same symptom for your visitors: the domain stops resolving. Neither is visible in an ordinary record lookup — our DNS lookup tool will happily show you the records themselves without any of this arithmetic, because that is a different question.

Advertisement

# The same two records from a terminal

dig example.com DNSKEY +dnssec

dig example.com DS +dnssec

# And the digest, computed from the key, for comparison

dig example.com DNSKEY | dnssec-dsfromkey -f - example.com

Signatures Expire — and Why One Day Left Can Be Perfectly Normal

Every DNSSEC signature — an RRSIG record, one for each set of records it covers — carries two timestamps: when it becomes valid and when it stops being valid. Unlike a TTL, that expiry is absolute. When it passes, a validating resolver stops accepting anything from the zone, even though every record is still published exactly as before. An expired signature is one of the most common causes of a sudden, total, apparently inexplicable outage.

The obvious way to warn about it is to flag anything expiring within a week. That rule is wrong, and measurably so. Several large operators sign their ordinary records with a rolling two-day window and re-sign continuously, while signing the key set for far longer — so a perfectly healthy zone routinely shows an A-record signature about a day from expiry. A seven-day rule would raise an alarm on some of the best-run zones on the internet, which is why this tool does not use one.

So this tool reports remaining life as a share of each signature’s own window, and it judges the signature over the key set and the signature over the A record separately, because the two often have very different lifetimes. One day left of a two-day window is fifty per cent — the middle of a normal cycle. One day left of a thirty-day window is three per cent, and that means the signer has already missed several chances to renew. The number that matters is the proportion, not the days.

If you run your own signer: the interval that actually protects you is not the signature lifetime but the gap between re-signing runs. A thirty-day signature refreshed every twenty-five days leaves five days of slack; if the signer stops, you find out with five days to spare. The same signature refreshed on day twenty-nine leaves you a few hours.

Turning DNSSEC On Without Taking Your Domain Offline

The order matters more than anything else here, because the dangerous states are the in-between ones. Signing before the registry knows about your key is harmless. Telling the registry about a key you are not using yet is not.

  1. Enable signing at your DNS host. The zone starts publishing DNSKEY records and signatures. Nothing changes for visitors: without a DS at the registry, resolvers still treat the zone as unsigned.
  2. Check that the zone really is signing before going further — that is the “signed but unlinked” state above, and it is exactly where you want to be at this point.
  3. Copy the DS record to your registrar. Most hosts show it ready to paste; some show the DNSKEY and let the registrar compute the digest. Both are fine, as long as what ends up at the registry is a digest of a key you are actually publishing.
  4. Check again. The moment the DS appears, validation is live — and so is the risk. This is the step where a mismatch takes the domain down.

Reversing it runs the opposite way: remove the DS at the registrar first, wait for it to expire from caches, and only then stop signing. Since the DS lives in the parent zone, the wait is governed by the parent’s TTL rather than yours, and that is usually a few hours rather than days — the result above shows nothing about it, so check the DS TTL yourself before you stop signing. Our DNS propagation checker will show you when the old record has actually cleared, and a WHOIS lookup will tell you which registrar to make the change at if you are not sure.

The one mistake that causes most DNSSEC outages: changing DNS provider without removing the DS first. The new provider signs with new keys, the registry still vouches for the old ones, and the domain goes dark the moment the change takes effect. Remove the DS, wait, migrate, re-enable.

Why Your Domain Vanished: SERVFAIL Explained

When DNSSEC validation fails, a resolver does not tell you the signature was bad. It returns SERVFAIL, which means only “I cannot give you an answer”. The same code covers a dead nameserver, a timeout and a broken signature, which is why the failure is so often misdiagnosed. Worse, the domain still works perfectly for anyone whose resolver does not validate — so half your colleagues see a problem and half do not.

There is a clean way to separate the causes, and this tool uses it. Re-ask the same question with the CD flag — Checking Disabled — which instructs the resolver to return the data without validating it. If the records appear with CD set and disappear without it, the records exist and it is validation refusing them. That is the difference between “your nameserver is down” and “your signatures are wrong”, in one extra query.

# Normal query - a broken zone gives SERVFAIL and no records

dig example.com A

# Same query with validation switched off at the resolver

dig example.com A +cd

# Records appear with +cd and not without it? Then it is DNSSEC.

When our checks pass and resolvers still refuse

This is a real state and the tool reports it rather than hiding it. The DS can match, the signature over the key set can verify, and validating resolvers can still reject the zone — because something further down is wrong: a record signed by a key the zone does not publish, a signature over one individual record set that does not verify, or a problem in the records that prove a name does not exist. When that happens the result says so plainly instead of awarding a pass on the strength of the checks that did succeed.

What This Checker Verifies, and What It Does Not

Every result carries two panels, and the second one is the more useful of the pair. A DNSSEC validator that reports only pass or fail is asking you to trust the whole of its reasoning without showing you any of it.

Verified here, by computation

  • The DS digest, recomputed from the DNSKEY the zone publishes and compared with the registry’s copy byte for byte.
  • The signature over the key set, checked cryptographically against the key it names. Seven algorithms are implemented: RSA/SHA-256 (8), RSA/SHA-512 (10), ECDSA P-256 (13), ECDSA P-384 (14), Ed25519 (15) and the two deprecated SHA-1 algorithms (5 and 7). Anything else — RSA/MD5, DSA, ECC-GOST, Ed448 — is reported as not checked here rather than quietly counted as a pass.
  • A second signature over the A record, normally made with a different key, so the zone signing key is exercised as well as the key signing key.
  • Signature validity windows, as a share of each window rather than a fixed number of days.

Not verified here, and why

  • The link from the root down to your registry. Verifying it means trusting a key published by IANA, and a tool that hardcodes a fingerprint it cannot re-check at source is asserting something it does not know. Instead the result shows what three independent validating resolvers concluded — each of which does check that link, against its own trust anchor.
  • Signatures over record types whose data contains a host name — SOA, NS, MX, CNAME. Those names can arrive compressed and must be rewritten into canonical form before the signature can be checked. Getting that wrong produces a confident “invalid” on a healthy zone, so this build does not attempt it.
  • Denial-of-existence records (NSEC and NSEC3), which prove a name does not exist. They are a common source of failure and they are not checked here.

That last group is exactly why the resolver column exists. Where our own arithmetic runs out, three independent validators are still watching, and the verdict takes their answer seriously. If you are choosing a resolver for your own network rather than auditing a domain, our guide to DNS security solutions covers a different problem — filtering malicious domains, rather than proving answers are genuine.

A related but separate check: DNSSEC proves a DNS answer is genuine; a TLS certificate proves the server you then connect to is genuine. They protect consecutive steps and neither substitutes for the other. Our SSL checker covers the second half.

Frequently Asked Questions About DNSSEC

How do I check if DNSSEC is enabled on my domain?

Enter the domain above. If the zone publishes DNSKEY records and the registry publishes a matching DS record, DNSSEC is on and linked. Publishing keys without a DS at the registry is the commonest half-finished state: the zone signs itself, but every validating resolver still treats it as unsigned, so the signing achieves nothing. This tool reports that case separately rather than showing it as a pass or a failure.

Why did my domain stop resolving after I turned DNSSEC on?

Because a broken chain of trust is worse than no chain at all. A validating resolver that cannot verify a signed answer does not fall back to serving it — it returns SERVFAIL and the domain disappears for everyone behind that resolver. The usual cause is a DS record at the registrar that does not match any key the zone publishes, which happens when keys are rolled and the new DS is never sent to the registrar.

What does it mean when the DS record does not match the DNSKEY?

The registry is vouching for a key your zone is not using. A DS record is a fingerprint: it contains a digest of one specific DNSKEY. This tool takes the DNSKEY your zone actually publishes, computes that digest itself, and compares it with the DS byte for byte. If they differ — or if the DS names a key tag your zone does not publish at all — the chain is broken and resolvers will refuse to answer. Fix it by publishing the correct DS at your registrar.

Do DNSSEC signatures expire?

Yes, and it is one of the most common causes of a sudden outage. Every RRSIG carries a hard expiry timestamp, and once it passes a validating resolver stops accepting anything from the zone — the records are still published, they are simply no longer trusted. Signers normally re-sign long before that, so an expired signature almost always means the signing process stopped running rather than anything being wrong with the records.

My signature has one day left. Is that a problem?

Usually not, and this is why the result shows the remaining time as a share of the signature’s own window rather than a number of days. Some large operators sign with a rolling two-day window and refresh continuously, so one day left is the middle of a normal cycle. One day left of a thirty-day window is a different matter entirely. A fixed “warn under seven days” rule would raise an alarm on some of the best-run zones on the internet, so this tool does not use one.

Does DNSSEC encrypt my DNS queries?

No, and this is the most common misunderstanding about it. DNSSEC signs answers so a resolver can tell whether they were altered in transit; it does not hide them. Anyone watching the network still sees every name you look up. Encryption is a separate job done by DNS over HTTPS and DNS over TLS, which hide the query but say nothing about whether the answer is genuine. The two solve opposite halves of the problem.

What is SERVFAIL and how do I tell if DNSSEC is causing it?

SERVFAIL means the resolver could not produce an answer it is willing to give you. When DNSSEC validation fails, that is what you get. There is a direct way to tell: re-ask with the CD (Checking Disabled) flag set, which tells the resolver to hand back the data without validating it. If the records appear with CD and vanish without it, the records exist and it is validation that is refusing them. This tool uses exactly that method to read a broken zone at all.

How do I turn DNSSEC off safely?

Remove the DS record at your registrar first, then wait for it to expire from caches. The wait is set by the DS record’s TTL in the parent zone, not by anything in your own zone, and it is typically a few hours. Only once that has passed should you stop signing at your DNS host. Doing it the other way round leaves a DS at the registry pointing at keys that no longer exist, which is the “the registry says signed, the zone is not” state, and it takes the domain offline for every validating resolver until the DS expires.

Related DNS and domain tools

The checks that usually come before and after a DNSSEC problem.

Changed your keys? Check the change has reached everyone

A DS record lives in the parent zone, so it clears on the parent’s schedule rather than yours. Watching it expire is the difference between a planned migration and an outage.

Last updated 23 September 2026 · signatures verified on this server with OpenSSL; chain above the registry left to validating resolvers