Windows Server · Windows  ·  medium  ·  Directory & core infrastructure

CRYPT_E_REVOCATION_OFFLINE — the revocation function could not check revocation

The machine could not download a CRL or reach an OCSP responder, so it will not trust the certificate even though the certificate is fine.

What you see

TLS connections, code signing checks, RDP or IIS bindings fail with 0x80092013. Common on locked-down or air-gapped servers, and on servers behind a proxy that the system account cannot use.

What is actually wrong

The CRL distribution point in the certificate is unreachable — no internet, a proxy that requires authentication, an internal CA whose CDP points at a decommissioned server, or an expired CRL that was never republished.

Codes and articles

0x80092013CRYPT_E_REVOCATION_OFFLINE0x80092012CRYPT_E_NO_REVOCATION_CHECK

Fixes (2)

Republish the CRL and fix the distribution point
Elevated PowerShell on the CA30 minuteslow riskreversible

An internal AD CS certificate. The most common cause by far is simply an expired CRL.

  1. On the failing machine, read what the certificate says its CDP is, and test it.

    Command Prompt
    certutil -URL C:\path\to\cert.cer

    The URL Retrieval Tool tests every CDP and OCSP URL in the chain and shows exactly which one fails, which saves guessing.

  2. On the CA, check when the CRL expires.

    Command Prompt
    certutil -getreg CA\CRLPeriodcertutil -getreg CA\CRLPeriodUnitscertutil -CRL
  3. Publish a fresh CRL.

    Command Prompt
    certutil -CRL
  4. Copy it to every location listed as a CDP — an HTTP path is the one that matters for non-domain clients.

  5. Verify the chain now builds on the failing machine.

    Command Prompt
    certutil -verify -urlfetch C:\path\to\cert.cer
Confirm it workedcertutil -verify -urlfetch reports the revocation check succeeded.
If you need to undo itNone — publishing a CRL is additive.
Give the system account a route to the revocation endpoints
Elevated PowerShell20 minuteslow riskreversible

A public certificate on a server behind a proxy or with no outbound access.

  1. Check the WinHTTP proxy, which is what system services use — it is not the same as the Internet Options proxy.

    Command Prompt
    netsh winhttp show proxy
  2. Set it if the server needs one.

    Command Prompt
    netsh winhttp set proxy proxy-server="http://proxy.example.local:8080" bypass-list="*.example.local;<local>"

    Revocation checks are made by the system, not by a signed-in user, so a per-user proxy configuration does nothing for them.

  3. Allow the CRL and OCSP hostnames through the firewall on TCP 80. They are plain HTTP by design — CRLs are signed, so they do not need TLS.

    Blocking outbound 80 while allowing 443 is a common policy that breaks revocation checking specifically.

  4. Clear the cached CRLs and retest.

    Command Prompt
    certutil -urlcache CRL deletecertutil -urlcache OCSP deletecertutil -verify -urlfetch C:\path\to\cert.cer
Confirm it workedThe verification reports a successful revocation check and the application connects.
If you need to undo itnetsh winhttp reset proxy

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.