Cloud Engineer Lab
Cloud Engineer Lab
Cloud Engineer Lab
Cloud Engineer Lab
© 2026
Microsoft Intune PKI Deep Dive: From Root CA to Device Certificate

Microsoft Intune PKI Deep Dive: From Root CA to Device Certificate

How a certificate gets from your Root CA onto an Intune-managed device: AD CS, templates, SCEP vs PKCS, NDES, the Certificate Connector, renewal and revocation.

19 min read
Share

Every "connect to the corporate Wi-Fi without a password" experience, every always-on VPN that just works on a brand new laptop, sits on top of a certificate that arrived on the device silently. When it works, nobody thinks about it. When it breaks, it breaks for everyone at once, usually on a Monday morning, and the error message on the device says almost nothing useful.

This post follows one certificate from the very top of the trust chain all the way down to the moment a laptop presents it to a Wi-Fi access point. Not "click here, then here", but what each component actually does, why it exists, and where each one tends to fail.

Intune PKI architecture: Root CA signs the Issuing CA, which forks into NDES for the SCEP path and the Certificate Connector for the PKCS path, both merging into Intune, then the SCEP or PKCS profile, the device, the device certificate, and Wi-Fi or VPN
One certificate's journey: two delivery paths from the Issuing CA, one destination.

Notice where the two paths split. In a SCEP deployment the Certificate Connector is installed on the NDES server itself, where it acts as the bridge between NDES and Intune. In a PKCS deployment there is no NDES at all, and the connector talks to the Issuing CA directly. Two genuinely different paths, one shared destination.


The Journey at a Glance

Root CA: the anchor of trust, kept offline, signs only the Issuing CA
Issuing CA: the online AD CS server that actually signs device certificates
Certificate templates: the rulebook for what a certificate may contain and who may request it
NDES or Certificate Connector: the bridge between Intune in the cloud and your CA on-premises
Intune profiles: trusted certificate first, then SCEP or PKCS
Device certificate: stored on the device, ideally protected by the TPM
Wi-Fi / VPN: the relying party that finally checks the certificate, and its revocation status

Root CA vs Issuing CA

A certificate is only as trustworthy as whoever signed it. The Root CA is the top of that chain: its own certificate is self-signed, and every device that trusts your PKI trusts it explicitly, by having its certificate in the Trusted Root store.

That makes the Root CA's private key the single most valuable secret in the whole design. If it leaks, an attacker can mint certificates your entire estate will accept, and the only fix is rebuilding the PKI and redistributing trust to every device. So in a well-designed hierarchy, the Root CA does almost nothing:

  • It is a standalone CA, not domain-joined.
  • It is kept offline, powered off or disconnected, and brought online only to sign a new Issuing CA certificate or publish a fresh CRL.
  • It signs exactly one kind of thing: subordinate CA certificates.

The Issuing CA (also called a subordinate or intermediate CA) does the daily work. It is an enterprise CA, domain-joined, online, and it signs every user and device certificate. Its own certificate is signed by the Root CA, which is how a device that trusts the Root also trusts whatever the Issuing CA signs.

Root CAIssuing CA
Online?No, offline by designYes, always available
Domain-joined?No (standalone)Yes (enterprise CA)
SignsIssuing CA certificates onlyUser and device certificates
Uses templates?NoYes
Typical validity10 to 20 years5 to 10 years
If compromisedRebuild the entire PKIRevoke it, issue a new Issuing CA from the Root

Why two tiers is the sweet spot

A single-tier PKI (one online Root that issues everything) puts your most important key on a server that is permanently reachable. Three tiers adds a policy CA layer that most organisations never need. Two tiers, offline Root plus online Issuing CA, is what the vast majority of Intune deployments should use.


AD CS Architecture

Active Directory Certificate Services is the Windows Server role that provides the CA itself, plus a few optional companions. For Intune, the pieces that matter are:

  • Certification Authority: the Issuing CA role, which holds the templates and signs requests.
  • Network Device Enrollment Service (NDES): needed only for SCEP. Lives on its own member server, never on the CA.
  • Online Responder: optional, provides OCSP for real-time revocation checks.
  • CRL Distribution Point (CDP) and Authority Information Access (AIA) locations: usually plain HTTP paths on an internal web server, where the CA publishes its CRL and its own certificate so relying parties can find them.

The CDP and AIA locations are easy to treat as an afterthought, and they are the single most common reason a perfectly issued certificate gets rejected later. Every relying party, your RADIUS server, your VPN gateway, has to be able to reach those URLs. More on that in the revocation section.


Certificate Templates

A template is the rulebook the Issuing CA applies to every request. It decides what the certificate is for, how long it lasts, what can go in the subject, and who is allowed to ask for it. Intune never bypasses the template: whatever Intune asks for, the CA still enforces the template's rules.

The settings that matter most for Intune certificates:

  • Subject Name tab: set to Supply in the request. Intune builds the subject and SAN from device or user attributes, so the CA has to accept them from the request instead of building them from Active Directory. A cloud-only Entra joined device doesn't have an AD object to build from at all.
  • Extensions tab: the Application Policies (Enhanced Key Usage) must include Client Authentication, since that is what Wi-Fi and VPN will check for.
  • Security tab: grant Read and Enroll to the account that will submit requests. For SCEP that is the NDES service account; for PKCS it is the account the Certificate Connector runs as (or the connector server's computer account).
  • Request Handling tab (PKCS only): enable Allow private key to be exported, because in the PKCS flow the key pair is created away from the device and has to travel to it.
  • Validity period: the template's maximum. Intune can request a shorter period, but never a longer one.

Duplicate, never edit

Always duplicate a built-in template (the Computer or User template is a sensible starting point) and edit the copy. Then remember the step everyone forgets: a new template does nothing until you publish it on the Issuing CA through Certificate Templates > New > Certificate Template to Issue.


SCEP vs PKCS

This is the most important decision in the whole design, because it changes where the private key is born.

SCEP (Simple Certificate Enrollment Protocol): the device generates its own key pair, locally, and sends only a certificate signing request. The private key never leaves the device, and on Windows it can be generated inside the TPM, so it can't be exported even by an administrator on that machine.

PKCS: the key pair is created away from the device, the CA issues the certificate, and the certificate plus its private key are packaged and delivered to the device, encrypted, through Intune. Simpler infrastructure, but the key existed somewhere other than the device for a moment.

SCEPPKCS
Where the private key is createdOn the device (TPM-capable)Off the device, then delivered
Needs NDES?YesNo
Inbound access from the internet?Yes, NDES must be reachable by devicesNo, the connector only makes outbound calls
On-premises footprintNDES server plus the connector on itCertificate Connector only
Best fitDevice authentication, Wi-Fi, VPNSimpler rollouts, and cases where the same key must exist in more than one place

There is also a third option, imported PKCS: certificates you already have (typically S/MIME encryption certificates, where every device a user owns must hold the same private key to read old encrypted mail) are uploaded to Intune and pushed to the user's devices. Signing and Wi-Fi authentication don't need this; email decryption usually does.

The practical default

For device authentication to Wi-Fi and VPN, prefer SCEP with the key stored in the TPM. It is more infrastructure, but it is the only option where the private key is physically bound to the device that uses it, which is the whole point of certificate-based device trust. PKCS is a reasonable choice when you can't publish NDES, or as a first step.

And if you would rather not run any of this on-premises at all, Microsoft Cloud PKI provides a hosted Root and Issuing CA that issue SCEP certificates straight from the Microsoft cloud, no NDES, no connector, no CRL hosting. It is licensed as part of the Intune Suite, and it is one of the capabilities that stayed Suite-only in the July 2026 licensing change. For a full side-by-side of the two approaches, and when to combine them, see Microsoft Cloud PKI vs AD CS.


NDES

NDES is the SCEP server. Devices talk to it over HTTPS, it talks to your Issuing CA, and with the Certificate Connector installed alongside it, it checks with Intune before letting any request through.

How a SCEP request actually flows:

1. Intune sends the SCEP profile

The profile tells the device what to request (subject, SAN, key size, key storage) and where to send it (the NDES URL). It also includes a one-time challenge, generated by Intune for that specific device.

2. The device builds a request

The device generates its key pair, in the TPM if the profile says so, and sends a certificate signing request plus the challenge to the NDES URL.

3. NDES asks Intune whether this request is legitimate

The Intune policy module (part of the Certificate Connector on the NDES server) validates the challenge with Intune and checks the request matches what Intune actually told that device to ask for. A request with a forged or reused challenge is rejected here.

4. NDES forwards it to the Issuing CA

NDES submits the request using the template it is configured for. The CA applies the template rules and signs the certificate.

5. The certificate returns to the device

NDES hands the signed certificate back, the device pairs it with the private key it kept, and it reports success back to Intune.

Things worth getting right when you build it:

  • Dedicated server. NDES must not run on the CA, and it shouldn't share a server with anything else either.
  • A dedicated service account for the NDES application pool, with Read and Enroll on the SCEP template.
  • Template mapping in the registry. NDES picks its template from three values under HKLM\SOFTWARE\Microsoft\Cryptography\MSCEP: SignatureTemplate, EncryptionTemplate and GeneralPurposeTemplate. Set them to your template's name (not its display name), then restart IIS.
  • Publish it safely. Devices outside the corporate network must reach the NDES URL. Use Microsoft Entra application proxy or a reverse proxy, rather than exposing the NDES server directly.

Intune Certificate Connector

The Certificate Connector for Microsoft Intune is the single on-premises agent that links your CA to Intune. It replaced the older separate "NDES connector" and "PFX connector", and one installation can provide any combination of:

  • SCEP: installed on the NDES server, validating requests as described above.
  • PKCS: requesting certificates from the Issuing CA on a device's behalf.
  • Imported PKCS: delivering certificates you uploaded to Intune.
  • Revocation: telling the CA to revoke certificates Intune no longer wants to exist.

The connector only makes outbound HTTPS connections to Intune; nothing on the internet connects in to it. For production, install at least two connectors on separate servers. Intune spreads work across them, so losing one server doesn't stop certificate issuance.


Trusted Certificate Profiles

Before a device can request anything, it has to trust your PKI. A trusted certificate profile deploys your Root CA certificate into the device's Trusted Root store, and a second one deploys the Issuing CA certificate into the Intermediate store.

This profile is not optional, and the rule that trips almost everyone up is about assignment:

Same groups, every time

A SCEP profile references a trusted certificate profile directly. If the trusted certificate profile and the SCEP profile are assigned to different groups, devices in the SCEP group never receive the Root it depends on, and the SCEP profile fails with no obvious reason why. Assign them together, to the same device or user groups.


SCEP Certificate Profiles

The SCEP profile is where Intune describes exactly what each device should end up with. The settings that matter:

SettingWhat to choose
Certificate typeDevice for Wi-Fi and VPN device authentication; User when the user's identity must be in the certificate
Subject name formatFor device certificates, something unique and stable, for example CN={{AAD_Device_ID}}
Subject alternative nameUsually the device's DNS name or UPN, whichever your RADIUS or VPN server matches against
Key storage provider (Windows)Enroll to TPM KSP, otherwise fail, so the private key can't be exported
Key size2048 bits minimum
Hash algorithmSHA-2
Root certificateYour trusted certificate profile for the Root CA
Extended key usageClient Authentication (1.3.6.1.5.5.7.3.2)
Renewal threshold20% is a sensible default
SCEP server URLYour published NDES URL, with more than one if you have them

Variables, not hard-coded names

Values like {{AAD_Device_ID}}, {{DeviceName}} and {{UserPrincipalName}} are filled in by Intune per device, so one profile serves your entire estate. Pick a subject your relying party can actually map back to something it knows, or the certificate will be issued perfectly and still be rejected at the Wi-Fi access point.

A PKCS certificate profile looks similar, but instead of NDES URLs it names the Issuing CA and the template directly, since the connector requests the certificate on the device's behalf.


Certificate Renewal

Certificates expire on purpose, and renewal is where a deployment either becomes invisible or becomes a recurring outage. This section covers the essentials; the certificate lifecycle post goes much deeper into failed renewals, leavers, deleted devices and revocation timing.

Intune handles renewal through the renewal threshold in the profile. When the remaining lifetime of the certificate falls below that percentage, the device requests a new certificate at its next check-in, before the old one expires. With a one-year certificate and a 20% threshold, renewal starts roughly 73 days before expiry, which leaves plenty of room for a device that is switched off for a few weeks.

Two things to know:


Revocation

Issuing certificates is only half of a PKI. The other half is being able to say "this certificate is no longer trustworthy" before it expires on its own.

Intune can revoke certificates it issued when a device is retired or wiped, or when the certificate profile is removed from it. The Certificate Connector carries that instruction to the Issuing CA. For it to work, the connector's account needs the Issue and Manage Certificates permission on the CA, otherwise Intune records the revocation as wanted but the CA never actually does it.

Revocation also matters outside Intune. A laptop reported stolen should be retired and wiped through Intune, and its certificate revoked, so it can't keep authenticating to Wi-Fi or VPN even if the thief finds a way in to the device.


CRL and OCSP

Revoking a certificate on the CA only matters if relying parties find out. There are two ways they check:

  • CRL (Certificate Revocation List): the CA periodically publishes a signed list of revoked serial numbers to its CDP location. Relying parties download it and cache it until it expires.
  • OCSP (Online Certificate Status Protocol): an Online Responder answers "is this specific certificate still good?" in real time, without downloading a full list.

The CRL has an expiry date of its own, and that is the trap:

The outage nobody schedules

If a CRL expires and nobody publishes a new one, relying parties can't confirm that any certificate is unrevoked, and most of them fail closed. Every device's Wi-Fi and VPN authentication stops at once. The Root CA's CRL is the classic culprit: it is published rarely (often every 6 to 12 months) from an offline machine, so it is easy to forget. Put the Root CRL renewal in a calendar with an owner, and monitor the expiry dates of every CRL you publish.

Make sure the CDP and AIA URLs in every issued certificate are plain HTTP paths reachable from wherever the relying party sits, including any cloud-hosted RADIUS or VPN service.


The Destination: Wi-Fi and VPN

The certificate's whole purpose is to prove the device's identity to something else. A Wi-Fi profile set to EAP-TLS, or a VPN profile set to certificate authentication, references the SCEP or PKCS profile, and the device presents that certificate automatically when it connects.

The relying party (a RADIUS server for Wi-Fi, the VPN gateway for VPN) then checks three things: that the certificate chains to a Root it trusts, that it hasn't been revoked, and that the subject or SAN maps to a known device or user. That last check is easy to overlook. If your RADIUS server is Microsoft NPS, it authenticates against on-premises Active Directory, so certificates for cloud-only Entra joined devices need a mapping strategy, which is one reason many organisations move to a cloud RADIUS service once they go cloud-native.

The full Wi-Fi and VPN side, including 802.1X, NPS and EKUs, is covered in certificate-based authentication end-to-end.

This is the same idea behind phishing-resistant MFA applied to devices: a credential bound to hardware, proven with cryptography rather than a shared secret.


Troubleshooting Certificate Enrollment

When a certificate doesn't arrive, work along the chain in order instead of guessing. The same principle as following the device instead of the portal applies here.

1. Start in Intune

Open the certificate profile's device status. Note whether the trusted certificate profile succeeded first; if it didn't, the SCEP profile never had a chance.

2. Check the device

On Windows, open the certificate stores (certlm.msc for device certificates, certmgr.msc for user certificates) and confirm the Root and Issuing CA certificates are present. Then check Event Viewer under Applications and Services Logs > Microsoft > Windows > DeviceManagement-Enterprise-Diagnostics-Provider > Admin for SCEP errors.

3. Check NDES reachability

From outside the corporate network, browse to your published NDES URL (ending in /certsrv/mscep/mscep.dll). A timeout means a publishing or firewall problem; a 503 usually means the NDES application pool has stopped, often because its service account password changed.

4. Check the connector

On the connector server, check Event Viewer under Applications and Services Logs > Microsoft > Intune > CertificateConnectors. Challenge validation failures and CA communication errors show up here.

5. Check the CA

Open the Certification Authority console and look at Failed Requests. A denied request almost always shows the reason directly: template permissions, a subject the template doesn't accept, or a template that isn't published.

The failures you will see most often, in rough order of frequency:

SymptomUsual cause
SCEP profile fails, trusted certificate profile also missingThe two profiles are assigned to different groups
Request denied at the CATemplate not published, or missing Read and Enroll for the requesting account
Device-only failures on some modelsProfile requires the TPM KSP and those devices have no usable TPM
Certificate issued but Wi-Fi rejects itSubject or SAN doesn't match what RADIUS expects, or RADIUS doesn't trust the chain
Everything fails at once, overnightAn expired CRL somewhere in the chain
SCEP works on-site but not remotelyNDES URL not published, or the proxy is blocking it

Summary

A certificate on an Intune device is the end of a long chain, and every link has a job: an offline Root that anchors trust, an Issuing CA that signs, a template that sets the rules, NDES or the Certificate Connector that bridges cloud to on-premises, Intune profiles that describe exactly what each device should get, and a relying party that checks it all again, including whether it has been revoked.

Get the design decisions right once (two-tier hierarchy, SCEP with TPM-backed keys for device authentication, trusted and SCEP profiles assigned together, revocation wired up, CRLs owned and monitored) and certificates become what they should be: invisible. To build the whole chain yourself, stage by stage with a checkpoint after each one, follow the enterprise PKI implementation lab. If you want to see where certificates sit in a full device build, this fits naturally after the Conditional Access stage of building a secure Windows endpoint from scratch.

CChetan Yamger

Written by

Chetan Yamger

Cloud Engineer · AI Automation Architect · Modern Workplace Consultant

Cloud Engineer, AI Automation Architect, and Modern Workplace Consultant based in Amsterdam, Netherlands. Specializing in scalable, secure enterprise solutions with Microsoft Azure, Intune, PowerShell, and AI-driven automation using ChatGPT, Gemini, and modern LLM technologies.

Cloud & Modern WorkplaceMicrosoft Intune & MDMAzure & Microsoft 365AI AutomationPrompt EngineeringPowerShell & Graph APIWindows AutopilotConditional Access & Zero TrustSCCM / MECM & MSIXVDI / WVDPower BINode.js & Next.js
Newsletter

Stay in the loop.
New articles, straight to you.

Deep-dive technical articles on Intune, PowerShell, and AI — no noise, no spam.

New article notifications
No spam, ever
Free forever

Discussion

Share your thoughts — your email stays private

Leave a comment

0/2000

Your email is used to prevent spam and will never be displayed.