HTTP 500

NDES returns HTTP 500 Internal Server Error

Last reviewed 2026-07-18 by the Just Software engineering team · also seen as ndes 500, mscep 500

What it means

A 500 from /certsrv/mscep/mscep.dll means the NDES application started but failed while processing the request. Unlike a 503 (pool down), NDES is alive and misconfigured or unable to do its job — usually template configuration, its RA certificates, or reaching the CA.

Common causes

  1. The certificate template names configured under HKLM\SOFTWARE\Microsoft\Cryptography\MSCEP (EncryptionTemplate, SignatureTemplate, GeneralPurposeTemplate) do not exist on the CA or the service account lacks Enroll permission on them.

  2. NDES RA certificates are missing or expired, so NDES cannot sign or decrypt SCEP messages.

  3. The issuing CA is unreachable or refusing the NDES server's requests (DCOM permissions, CertSvc stopped).

How to fix it

  1. Compare the template names in HKLM\SOFTWARE\Microsoft\Cryptography\MSCEP against the templates actually published on the CA — they must match the template name (not display name) exactly.

  2. On the CA, confirm the NDES service account has Read and Enroll on the configured templates, and that the templates are added under Certificate Templates in certsrv.msc.

  3. Test CA reachability from the NDES server with certutil -ping and check Failed Requests on the CA for denials from the NDES account.

  4. After any registry or certificate fix, run iisreset so NDES re-reads its configuration.

An unhandled error has occurred. Reload 🗙