3.2 KiB
Purpose
This document outlines the Microsoft-recommended best practices for deploying a secure, internal-use-only, two-tier Public Key Infrastructure (PKI) using Windows Server 2022 or newer. The PKI supports securing S/MIME email, 802.1X Wi-Fi with NPS, and LDAP over SSL (LDAPS).
!!! abstract "Environment Breakdown"
The environment will consist of at least 2 virtual machines. For the purposes of this document they will be named LAB-CA-01
and LAB-CA-02
. This stands for "Lab Certificate Authority [01|02]" In a two-tier hierarchy, an offline Root CA signs a single "Subordinate" Enterprise CA certificate. The Subordinate CA is domain-joined and handles all certificate requests. Clients trust the PKI via Group Policy and Active Directory integration.
In this case, `LAB-CA-01` is the Root CA, while `LAB-CA-02` is the Intermediary/Subordinate CA. You can add more than one subordinate CA if you desire redundancy in your environment.
!!! note "Assumptions" It is assumed that you understand how to set up a Windows Server 2022/2025 bare-metal or as a VM. You should give it at least 4GB of RAM. It is also assumed that you will change the edition of Windows Server from "Evaluation" to a "Standard" via DISM. Fully updating the server prior to beginning is also advised. Lastly, ensure the timezone is correctly configured.
Offline Root CA LAB-CA-01
Setup
- Provision, change edition, and activate a non-domain-joined Windows Server 2022 machine
- Navigate to "Server Manager > Manage > Add Roles and Features"
- Check "Active Directory Certificate Services"
- When prompted to confirm, click the "Add Features" button
- Ensure the "Include management tools (if applicable)" checkbox is checked.
- Check "Active Directory Certificate Services"
Install AD CS role as a Standalone Root CA. 3. Use RSA 4096-bit key, SHA-256, 10-year validity. 4. Configure AIA and CDP extensions with HTTP paths. 5. Publish root cert and CRL to AD and internal HTTP. 3. Online Subordinate CA Setup Steps:
- Domain-join a Windows Server and install AD CS as Enterprise Subordinate CA.
- Generate CSR, sign with Root CA, import signed cert.
- Configure AIA/CDP extensions for CRL publication.
- Enable role separation and auditing.
- Certificate Templates and Autoenrollment Configure certificate templates for the following use cases: • - S/MIME Email: Use separate templates for signing and encryption. Enable key archival for encryption. • - 802.1X Wi-Fi: Use 'RAS and IAS Server' for NPS, and 'Workstation Authentication' for clients. • - LDAPS: Use 'Kerberos Authentication' template for domain controllers. Enable autoenrollment via GPOs under Public Key Policies for both Computer and User configuration.
- CRL and Revocation Management Publish CRLs regularly, configure overlap periods, and monitor expiration. Enable Delta CRLs on the Subordinate CA, but not on the Root.
- Security Recommendations • - Harden CA servers; limit access to PKI admins. • - Use BitLocker or HSM for key protection. • - Enforce strong cryptographic settings: RSA 2048+, SHA-256. • - Monitor issuance and renewals with audit logs and scripts.