This site is an archive and is no longer updated.
    Back to ADCS Overview
    Windows ADCSTemplatesNEW

    Certificate Templates

    Blueprints for Certificate Properties and Permissions

    12 min readDecember 2025
    LinkedInX
    Certificate Templates showing User Template, Computer Template, Web Server Template, and Code Signing Template

    What are Certificate Templates?

    Certificate Templates are blueprints that define what properties a certificate will have, who can request it, and how it can be used. Think of them as pre-configured recipes - instead of manually specifying every certificate field, you select a template and the CA fills in the details.

    Templates control everything: key size, validity period, what the certificate can be used for (authentication, encryption, signing), and who has permission to enroll. Enterprise CAs require templates - you can't issue a certificate without one.

    Templates Define:

    • Cryptography: Key algorithm (RSA/ECC), key size, hash algorithm
    • Purpose: What the certificate can do (client auth, server auth, code signing)
    • Permissions: Who can request, who can enroll, who can autoenroll
    • Subject Name: How the certificate name is built (from AD, or requester-supplied)

    Built-in Templates

    Windows Server includes dozens of pre-configured templates. Here are the most commonly used ones:

    TemplatePurposeAuto-enroll
    User
    Email encryption (S/MIME), EFS, client authentication
    Computer
    Machine authentication, IPsec
    Domain Controller
    DC authentication, LDAPS, smart card logon
    Web Server
    HTTPS/TLS for web servers (IIS, Apache, etc.)
    Code Signing
    Sign scripts, executables, drivers
    Workstation Authentication
    802.1X network authentication for workstations

    Note: Templates with auto-enroll support can be configured to automatically deploy certificates via Group Policy. See Autoenrollment for details.

    Why Duplicate, Not Modify

    Warning: Never Modify Built-in Templates Directly

    Built-in templates are the "factory defaults." Modifying them directly causes several problems:

    No Rollback

    If you break something, there's no "undo." You'd have to manually restore settings or reinstall ADCS to get the original back.

    Windows Updates May Reset

    Microsoft occasionally updates built-in templates. Your customizations could be overwritten.

    Audit Confusion

    Security auditors expect built-in templates to have standard settings. Custom changes to built-ins are unexpected and harder to track.

    Best Practice: Duplicate First

    1. Right-click the built-in template → "Duplicate Template"
    2. Give it a meaningful name (e.g., "Contoso Web Server v2")
    3. Make your customizations to the copy
    4. Publish the copy to your CA
    5. Keep the original untouched as a reference

    Key Template Settings

    When you open a template's properties, you'll see several tabs. Here are the most important ones:

    General Tab

    • •Template display name: What users see when requesting
    • •Validity period: How long certificates last (e.g., 1 year, 2 years)
    • •Renewal period: How early before expiration users can renew
    • •Publish to AD: Makes the template available forest-wide

    Request Handling

    • •Purpose: Signature, Encryption, or both
    • •Export private key: Allow or disallow key export
    • •CA certificate manager approval: Require manual approval for requests

    Cryptography

    • •Provider category: Key Storage Provider (KSP) for modern apps
    • •Algorithm: RSA or ECDSA (ECC)
    • •Minimum key size: RSA 2048+ or ECDSA P-256+
    • •Hash algorithm: SHA256 or stronger (avoid SHA1)

    Subject NameSecurity Critical

    • •Build from AD: CA populates subject from Active Directory (safer)
    • •Supply in request: Requester specifies the subject name (dangerous!)

    ESC1 Attack Vector

    "Supply in request" with client authentication = ESC1 vulnerability. An attacker who can enroll could request a certificate for any user, including Domain Admins. See ADCS Security for details.

    Security (Permissions)

    • •Read: Can see the template exists
    • •Enroll: Can request certificates using this template
    • •Autoenroll: Can receive certificates automatically via Group Policy
    • •Write: Can modify the template (dangerous - limit to PKI admins)

    For autoenrollment to work, users/computers need both Enroll and Autoenroll permissions. See Autoenrollment for setup steps.

    Template Versions

    Templates have version numbers (schema versions) that determine which features are available. Higher versions require newer Windows but offer more capabilities.

    VersionMinimum OSKey Features
    V1Windows 2000Basic templates, cannot be modified or duplicated
    V2Windows Server 2003Duplicatable, autoenrollment, issuance policies
    V3Windows Server 2008CNG/KSP support, Suite B (ECC), SHA-2
    V4(Recommended)Windows Server 2012Key attestation, TPM support, renewal with same key

    Recommendation: Use V4 templates for new deployments. They support all modern cryptography options and features like TPM key attestation for high-security scenarios.

    Common Mistakes

    Granting Autoenroll to Everyone

    Don't give "Authenticated Users" autoenroll on sensitive templates. Use targeted security groups for each template type.

    Allowing Subject Name in Request + Client Auth

    This is the ESC1 vulnerability. Never combine "Supply in request" with client authentication EKU unless you have manager approval required.

    Forgetting to Publish Template to CA

    Creating a template doesn't make it available. You must right-click the CA → Certificate Templates → New → Certificate Template to Issue → select your template.

    Using V1 Templates

    V1 templates can't be duplicated or modified. If you need to customize, duplicate to a V2+ template first.

    Weak Cryptography Settings

    Avoid RSA 1024-bit keys and SHA-1 signatures. Modern standards require RSA 2048+ or ECDSA P-256+, with SHA-256 or stronger.

    Allowing Private Key Export on Sensitive Templates

    Disable key export for authentication certificates. Only enable export when absolutely necessary (e.g., backup scenarios).

    Next Steps

    Related Resources