Центр сертификации windows server 2016 настройка

А вот и финальная третья часть нашей серии статей о центре сертификации на предприятии. Сегодня рассмотрим развертывание службы сертификатов на примере Windows Server 2016. Поговорим о подготовке контроллера домена, подготовке веб-сервера, установке корневого и издающего центров сертификации и об обновлении сертификатов. Заглядывайте под кат!

Первая часть серии

Вторая часть серии

Словарь терминов

В этой части серии использованы следующие сокращения и аббревиатуры:

  • PKI (Public Key Infrastructure) — инфраструктура открытого ключа, набор средств (технических, материальных, людских и т. д.), распределённых служб и компонентов, в совокупности используемых для поддержки криптозадач на основе закрытого и открытого ключей. Поскольку аббревиатура ИОК не является распространённой, здесь и далее будет использоваться более знакомая англоязычная аббревиатура PKI.
  • X.509 — стандарт ITU-T для инфраструктуры открытого ключа и инфраструктуры управления привилегиями.
  • ЦС (Центр Сертификации) — служба выпускающая цифровые сертификаты. Сертификат — это электронный документ, подтверждающий принадлежность открытого ключа владельцу.
  • CRL (Certificate Revocation List) — список отзыва сертификатов. Подписанный электронный документ, публикуемый ЦС и содержащий список отозванных сертификатов, действие которых прекращено по внешним причинам. Для каждого отозванного сертификата указывается его серийный номер, дата и время отзыва, а также причина отзыва (необязательно). Приложения могут использовать CRL для подтверждения того, что предъявленный сертификат является действительным и не отозван издателем… Приложения могут использовать CRL для подтверждения, что предъявленный сертификат является действительным и не отозван издателем.
  • SSL (Secure Sockets Layer) или TLS (Transport Layer Security) — технология обеспечивающая безопасность передачи данных между клиентом и сервером поверх открытых сетей.
  • HTTPS (HTTP/Secure) — защищённый HTTP, является частным случаем использования SSL.
  • Internet PKI — набор стандартов, соглашений, процедур и практик, которые обеспечивают единый (унифицированный) механизм защиты передачи данных на основе стандарта X.509 по открытым каналам передачи данных.
  • CPS (Certificate Practice Statement) — документ, описывающий процедуры управления инфраструктурой открытого ключа и цифровыми сертификатами.

Общий план развёртывания

Для развёртывания службы сертификатов нам потребуется четыре машины с Windows Server 2016, которые будут выполнять следующие функции:

  1. Контроллер домена — необходим для функционирования домена Active Directory;
  2. Веб-сервер — будет обеспечивать доступ к сертификатам ЦС и спискам отзывов для клиентов;
  3. Корневой ЦС — будет выполнять функции корневого ЦС;
  4. Подчинённый ЦС — будет выполнять функции издающего ЦС.

Развёртывание PKI будет проходить поэтапно на каждом сервере в том порядке, в котором они указаны выше. Подготовка контроллера домена будет сводиться к обеспечению функций Active Directory, GPO и учётных записей.

Подготовка контроллера домена

Перед развёртыванием PKI необходимо убедиться в работоспособности домена Active Directory и что все необходимые серверы (а именно, веб-сервер и подчинённый ЦС) введены в домен. А так же, что подготовлены необходимые учётные записи. На данном этапе нам потребуется только учётная запись с правами Enterprise Admins.

Ряд операций на подчинённом ЦС требуют прав Enterprise Admins, поскольку производится запись в раздел configuration naming context. Если это корневой домен леса, то для этих операций достаточно прав Domain Admins.

Следующим шагом будет конфигурирование политики автоматической выдачи сертификатов (autoenrollment). Эта политика нужна будет в процессе эксплуатации служб сертификатов для автоматической выдачи и обновления истёкших сертификатов на клиентах. Политика настраивается в конфигурации компьютера и пользователя:

  • Computer Configuration\Policies\Windows Settings\Security Settings\Public Key Infrastructure\Certificate Services Client – Auto-Enrollment
  • User Configuration\Policies\Windows Settings\Security Settings\Public Key Infrastructure\Certificate Services Client – Auto-Enrollment

Политика в обоих разделах должна быть сконфигурирована как показано на следующей картинке:

Сконфигурированный объект групповых политик (GPO) должен быть пристыкован к корню домена. Данную процедуру необходимо повторить во всех доменах текущего леса Active Directory.

Далее, необходимо создать запись типа CNAME с именем CDP на сервере ДНС, который будет указывать на веб-сервер (IIS). Эту процедуру необходимо выполнить как на внутреннем, так и на внешнем (который обслуживает зону в интернете) серверах ДНС. Запись можно создать при помощи PowerShell:

Add-DnsServerResourceRecord -CName -Name "cdp" -HostNameAlias "iis.contoso.com" -ZoneName "contoso.сom" 

Подготовка веб-сервера

На веб-сервере нам потребуется выполнить следующее: установить службу IIS (если ещё не установлена), создать общую папку и сконфигурировать веб-сайт на использование этой папки.

  • Установка службы IIS

Для установки службы IIS можно воспользоваться следующей командой:

Install-WindowsFeature -Name Web-Server, Web-WebServer -IncludeManagementTools

  • Создание папки PKIdata

Согласно нашей конфигурационной таблице (см. часть 2), для хранения сертификатов ЦС и списков отзыва нам потребуется общая папка с сетевым именем PKI по следующему пути: C:\InetPub\wwwroot\PKIdata

New-Item -ItemType Directory -Path C:\InetPub\wwwroot -Name PKIdata -Force
New-SmbShare -Path C:\inetpub\wwwroot\PKIdata -Name PKI -FullAccess everyone

После этого нужно выдать права NTFS на запись в эту папку для группы Cert Publishers.

  • Создание веб-сайта

Теперь нам необходимо создать отдельный веб-сайт с именем “CDP” и хост-именем “cdp.contoso.com”:

New-Website -Name CDP -HostHeader cdp.contoso.com -PhysicalPath C:\inetpub\wwwroot\PKIdata
New-WebVirtualDirectory -Site cdp -Name pki -PhysicalPath C:\inetpub\wwwroot\PKIdata

  • Включение поддержки Delta CRL

В нашем сценарии издающий ЦС будет публиковать Delta CRL, которые содержат символ плюс «+» в имени файла (например, contoso-pica+.crl). По умолчанию, IIS будет расценивать этот символ в запросе как метасимвол и не позволит клиентам скачать список отзыва. Для этого необходимо включить двойной эскейпинг в настройках IIS, чтобы расценивать знак плюса в запросе как литерал:

Import-Module -Name WebAdministration
Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter /system.webServer/security/requestFiltering -name allowdoubleescaping -Value 'true'

Установка корневого ЦС

Фактическая установка ЦС будет включать в себя несколько этапов:

  1. Подготовка предустановочных конфигурационных файлов (CAPolicy.inf);
  2. Установка компонента ЦС;
  3. Выполнение постустановочной конфигурации;
  4. Проверка установки.

Перед установкой корневого ЦС, необходимо ещё раз вернуться к конфигурационным таблицам:

Название параметра Значение параметра
Сервер ЦС
Класс ЦС Standalone CA
Тип ЦС Root CA
Сертификат
Имя сертификата Contoso Lab Root Certification authority
Дополнительный суффикс OU=Division Of IT, O=Contoso Pharmaceuticals, C=US
Провайдер ключа RSA#Microsoft Software Key Storage Provider
Длина ключа 4096 бит
Алгоритм подписи SHA256
Срок действия 15 лет

В таблице я выделил только те параметры, которые задаются до и в процессе установки. Остальные параметры будут настраиваться после установки.

Предварительная конфигурация

Предварительные конфигурационные файлы необходимы для ряда настроек, которые невозможно задать во время установки компонента (ни при помощи графического интерфейса, ни при помощи командной строки или PowerShell). К ним обычно относятся настройки расширений сертификата ЦС. Например, для настройки расширения сертификата Certificate Policies, необходимо использовать предварительный конфигурационный файл, в котором настраиваются параметры расширения. Для Microsoft ADCS таким файлом является файл CAPolicy.inf, который должен быть расположен по следующему пути: %windir%\CAPolicy.inf. С синтаксисом этого файла можно ознакомиться в следующей статье: How CA Certificates Work. Поскольку никаких специфичных или нестандартных настроек в сертификате корневого ЦС мы делать не будем, поэтому и предварительный конфигурационный файл сейчас нам не потребуется.

Установка компонента ЦС

Прежде всего необходимо добавить установочные компоненты для AD CS:

Install-WindowsFeature AD-Certificate, ADCS-Cert-Authority -IncludeManagementTools

После этого сверьтесь с предыдущей таблицей, чтобы определить параметры установки. Исходя из данных таблицы, зададим параметры для командлета Install-AdcsCertificationAuthority:

Install-AdcsCertificationAuthority -CACommonName "Contoso Lab Root Certification Authority" `
    -CADistinguishedNameSuffix "OU=Division Of IT, O=Contoso Pharmaceuticals, C=US" `
    -CAType StandaloneRootCA `
    -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" `
    -KeyLength 4096 `
    -HashAlgorithmName SHA256 `
    -ValidityPeriod "years" `
    -ValidityPeriodUnits 15 `
    -DatabaseDirectory $(Join-Path $env:SystemRoot "System32\CertLog")

Итоговая настройка

После установки компонента ЦС необходимо настроить рабочие параметры ЦС. Рассмотрим ещё раз элементы, которые нам необходимо настроить:

Название параметра Значение параметра
Сервер ЦС
Срок действия издаваемых сертификатов 15 лет
Точки публикации CRT 1) По-умолчанию
2) C:\CertData\contoso-rca<CertificateName>.crt
3) IIS:\InetPub\PKIdata\contoso-rca<CertificateName>.crt*
Точки распространения CRT 1) cdp.contoso.com/pki/contoso-rca<CertificateName>.crt
Точки публикации CRL 1) По-умолчанию
2) C:\CertData\contoso-rca<CRLNameSuffix>.crt
3) IIS:\InetPub\PKIdata\contoso-rca<CRLNameSuffix>.crt*
Точки распространения CRL 1) cdp.contoso.com/pki/contoso-rca<CRLNameSuffix>.crt
Сертификат
Состав CRL Base CRL
Base CRL
Тип Base CRL
Срок действия 6 месяцев
Расширение срока действия 1 месяц
Алгоритм подписи SHA256
Публикация в AD Нет

* — копируется на сервер IIS

Скрипт настройки

Для конфигурирования настроек ЦС мы будем использовать BATCH скрипт с использованием утилиты certutil.exe:

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::                     Root CA post-installation script                               ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: все комментарии помечены знаком двойного двоеточия (::)
:: записываем пути для публикации и распространения сертификатов ЦС и списков отзыва
:: в отдельные переменные
SET CrlLocal=C:\CertData\contoso-rca%%8.crl
SET CDP=http://cdp.contoso.com/pki/contoso-rca%%8.crl
SET AIA=http://cdp.contoso.com/pki/contoso-rca%%4.crt

:: Создаём папку в корне системного диска, куда будут записываться файлы ЦС. Эта папка
:: создаётся для удобства, чтобы не искать папку CertEnroll в глубине папки Windows.
md C:\CertData

:: Настраиваем пути публикации и распространения для сертификатов ЦС и списков отзыва.
certutil -setreg CA\CRLPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%3%%8.crl\n1:%CrlLocal%\n2:%CDP%"

certutil -setreg CA\CACertPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n2:%AIA%"

:: Поскольку мы не можем указывать пути публикации для файла сертификата, мы
:: вручную переименовываем его в необходимый формат и копируем в папку CertData
ren %windir%\system32\CertSrv\CertEnroll\*.crt contoso-rca.crt
copy %windir%\system32\CertSrv\CertEnroll\contoso-rca.crt C:\CertData

:: Задаём срок действия издаваемых сертификатов
certutil -setreg CA\ValidityPeriodUnits 15
certutil -setreg CA\ValidityPeriod "Years"

:: Задаём время жизни списков отзыва согласно нашей конфигурации
certutil -setreg CA\CRLPeriodUnits 180
certutil -setreg CA\CRLPeriod "Days"
certutil -setreg CA\CRLOverlapPeriod "Months"
certutil -setreg CA\CRLOverlapUnits 1

:: Отключаем дифференциальные списки отзыва (или Delta CRL)
certutil -setreg CA\CRLDeltaPeriodUnits 0

:: Отключаем генерацию кросс-сертификатов
certutil -setreg ca\CRLFlags +CRLF_DISABLE_ROOT_CROSS_CERTS

:: Конфигурируем ЦС для включения истёкших отозванных сертификатов в списки отзыва
certutil –setreg ca\CRLFlags +CRLF_PUBLISH_EXPIRED_CERT_CRLS

:: Включаем полный аудит событий на ЦС**
certutil -setreg CA\AuditFilter 127

:: если версия ОС ниже, чем Windows Server 2016 необходимо задать алгоритм подписи.
:: Windows Server 2016 по умолчанию использует SHA256.
Certutil -setreg ca\csp\CNGHashAlgorithm SHA256

:: Перезапускаем службу ЦС для применения изменений.
net stop certsvc && net start certsvc

:: Публикуем списки отзыва.
certutil -CRL

Ряд команд нуждается в более развёрнутом пояснении. Команды с настройкой расширений CRL Distribution Points и Authority Information Access имеют специфический синтаксис. Во-первых, пути публикации и распространения указываются в одну строку и разделяются символом новой строки «\n». Каждый путь начинается с числа и отделяется от самого пути символом двоеточия. Это число в начале пути указывает битовую маску флагов публикации для конкретного пути. Значение каждого бита для расширений CDP и AIA приведено в следующей таблице:

Название галочки в MMC Числовое значение Название галочки в MMC Числовое значение
Publish CRLs to this location. 1 Include in the AIA extension of issued
certificates.
2
Include in the CDP extension of issued certificates. 2 Include in the Online Certificate Status. Protocol (OCSP) extension. 32
Include in CRLs. Clients use this to find Delta CRL locations. 4
Include in all CRLs. Specifies where to publish in AD DS when publishing manually. 8
Publish Delta CRLs to this location. 64
Include in the IDP extension of issued CRLs. 128

Если взять путь для CDP: 1:%windir%\system32\CertSrv\CertEnroll\%%3%%8.crl, то цифра 1 в начале строки говорит о том, что это путь физического размещения файла (Publich CRLs to this location). Другие опции здесь не используются. Для включения пути, который будет публиковаться в издаваемых сертификатах, мы будем использовать опцию «Include in the CDP extension of issued certificates» с числовым значением 2. Такой же принцип применяется и для остальных путей.

В каждом пути включены переменные с двойным знаком процента «%%». Это переменные, которые ЦС при формировании пути будет автоматически заполнять исходя из типа переменной.

Первый знак процента используется как эскейп-символ, чтобы процессор командной строки воспринял следующий знак процента как литерал. Дело в том, что знак процента в командном процессоре CMD является служебным символом. Сервер ЦС так же использует знак процента для указания, что это переменная. Для исключения конфликта в командном процессоре используется последовательность из двух знаков процента.

Следующая таблица содержит описание всех доступных переменных и их краткое описание:

Переменная в редакторе расширений CDP и AIA Переменная в скрипте Где используется Значение
<ServerDNSName> %1 CDP/AIA Полное ДНС имя сервера ЦС
<ServerShortName> %2 CDP/AIA Короткое (NetBIOS) имя сервера ЦС
<CaName> %3 CDP/AIA Имя ЦС (атрибут CN в сертификате)
<CertificateName> %4 AIA Индекс сертификата ЦС. Используется только при обновлении сертификата ЦС.
<ConfigurationContainer> %6 CDP/AIA Путь к configuration naming context в Active Directory
<CATruncatedName> %7 CDP/AIA Укороченное (санитизированное) имя сертификата ЦС. В общем случае будет совпадать с полным именем ЦС
<CRLNameSuffix> %8 CDP Индекс ключа ЦС, которым был подписан данный CRL. Используется при обновлении ключевой пары ЦС.
<DeltaCRLAllowed> %9 CDP Добавляет суффикс для Delta CRL (знак «+»).
<CDPObjectClass> %10 CDP Класс объекта в Active Directory
<CAObjectClass> %11 CDP/AIA Класс объекта в Active Directory

В нашем конкретном случае будут использоваться только две переменные: <CertificateName> и <CRLNameSuffix>. Для исходного сертификата ЦС эти переменные пустые. При обновлении сертификата ЦС, переменная будет заменяться на «(index)», где index — номер сертификата ЦС. Индексирование начинается с нуля. Например, имя файла для последующего сертификата ЦС будет иметь вид: contoso-rca(1).crt. И так далее. То же самое касается и переменной , только здесь будет указываться индекс ключевой пары ЦС.

Отдельного внимания заслуживает команда, которая включает аудит операций на сервере ЦС, которые регистрируются в системном журнале Security.evtx. К ним относятся все основные операции: запуск/остановка службы, отправление запроса, выпуск или отклонение сертификата, выпуск списка отзыва. Эту строчку можно найти практически в каждом постустановочном скрипте для ЦС, которые можно найти в похожих статьях в интернете. И практически никто не утруждает себя в подробном объяснении механизма его работы, просто копируют из статьи в статью.

Особенность ведения аудита ЦС заключается в том, что настройка флагов аудита на ЦС является необходимым, но не достаточным условием. Механизм аудита основан на регистрации событий в журнале Security.evtx, который, в свою очередь зависит от настройки политики Audit Object Access в групповых политиках. Т.е. без настройки групповых политик никакого аудита не будет.

Опытные администраторы знают к чему приводит включение Audit Object Access — к лавинному созданию записей в журнале от других компонентов ОС. Например, аудит доступа файловой системы, реестра, других установленных ролей и т.д. В результате, журнал может буквально за день-два заполниться до отказа. Поэтому для эффективного использования аудита необходимы меры по фильтрации ненужных событий, например, при помощи функции подписки на интересующие события. Нет смысла в аудите, если его никто не может прочитать и эффективно проанализировать. Но эта тема уже выходит за рамки этой статьи.

Прочие настройки

После того как корневой ЦС установлен и сконфигурирован, убедитесь, что всё прошло без ошибок:

  • Откройте оснастку Certification Authorities MMC (certsrv.msc), убедитесь, что служба запущена;
  • Выберите свойства узла ЦС и проверьте поля сертификата, что они соответствуют ожидаемым значениям;
  • Найдите в корне системного диска папку CertData и убедитесь, что там находится два файла: сертификат и список отзыва. Убедитесь, что поля списка отзыва соответствуют ожидаемым значениям.

Если всё хорошо, тогда скопируйте содержимое папки C:\CertData на сервер IIS в папку PKIData. Сертификат корневого ЦС уже можно импортировать на все устройства, которые будут использовать нашу PKI.

Для импорта сертификата на доменные клиенты, достаточно загрузить его в Active Directory и после обновления групповых политик на клиентах, сертификат будет установлен в локальные хранилища сертификатов во всём лесу. Для публикации сертификата в AD необходимо выполнить следующую команду:

Certutil -f -dspublish path\contoso-rca.crt RootCA

Для установки сертификата на клиентах в рабочих группах и мобильные устройства необходимо воспользоваться другими инструментами, которые есть в вашем распоряжении. Например, System Center Configuration Manager или Mobile Device Management. Если подходящих инструментов нет, можно копировать и устанавливать сертификат на компьютеры при помощи утилиты certutil.exe. Для установки сертификата в локальное хранилище сертификатов выполните следующую команду:

Certutil -f -addstore Root path\contoso-rca.crt

Установка издающего ЦС

Как и в случае с корневым ЦС, установка издающего ЦС включает в себя четыре этапа:

  1. Подготовка предустановочных конфигурационных файлов (CAPolicy.inf);
  2. Установка компонента ЦС;
  3. Выполнение постустановочной конфигурации;
  4. Проверка установки и конфигурации.

Предустановочная конфигурация

Если для корневого ЦС предустановочный конфигурационный файл нам не требовался, то для издающего ЦС он понадобится. В нём мы настроим расширения Certificate Policies и Basic Constraints для сертификата ЦС. Если с политиками всё понятно, то в расширении Basic Constraints мы запретим выдачу сертификатов другим ЦС с издающего ЦС, поскольку у нас двухуровневая иерархия и добавление новых уровней только усложняет нашу структуру и увеличивает время, затрачиваемое на проверку сертификатов клиентами. Также отключим автоматическую загрузку шаблонов из Active Directory в список выдаваемых шаблонов. По умолчанию, сервер ЦС загружает на выдачу некоторый набор шаблонов сертификатов. Это вредно по двум причинам:

  1. Контроллеры домена практически мгновенно обнаруживают появление ЦС в лесу и даже при отключённой политике автоматической выдачи сами запрашивают себе сертификаты.
  2. Администраторы сами должны определять какие шаблоны будут использовать в организации.

Поэтому мы сконфигурируем ЦС так, что список шаблонов к выдаче будет пустым. Это возможно сделать только через CAPolicy.inf. В нашем случае он будет иметь следующее содержимое:

; заголовок INI файла
[Version]
Signature= "$Windows NT$"

; указываем список политик, которые будут включены в сертификат ЦС. В нашем
; случае будет одна политика под названием AllIssuancePolicies.
[PolicyStatementExtension]
Policies = AllIssuancePolicy
; конфигурируем детали самой политики. Ссылку на документ Certificate Practice
; Statement (CPS) и объектный идентификатор политики
[AllIssuancePolicy]
URL = http://cdp.contoso.com/pki/contoso-cps.html
OID = 2.5.29.32.0
[BasicConstraintsExtension]
IsCA = True
PathLegth = 0
IsCritical = True
; секция прочих настроек ЦС
[certsrv_server]
; отключаем автоматическую загрузку шаблонов сертификатов для выдачи
LoadDefaultTemplates = 0

Файл с именем CAPolicy.inf необходимо скопировать в системную папку Windows до установки ЦС.

Установка компонента ЦС

Прежде всего необходимо добавить установочные компоненты для AD CS:

Install-WindowsFeature AD-Certificate, ADCS-Cert-Authority -IncludeManagementTools

После этого посмотрим на установочную таблицу, чтобы определить параметры установки:

Название параметра Значение параметра
Сервер ЦС
Класс ЦС Enterprise CA
Тип ЦС Subordinate CA
Автоматическая загрузка шаблонов Нет
Сертификат
Имя сертификата Contoso Lab Issuing Certification authority
Дополнительный суффикс OU=Division Of IT, O=Contoso Pharmaceuticals, C=US
Провайдер ключа RSA#Microsoft Software Key Storage Provider
Длина ключа 4096 бит
Алгоритм подписи SHA256
Срок действия 15 лет (определяется вышестоящим ЦС)
Политики выдачи 1) Имя: All Issuance Policies
OID=2.5.29.32.0
URL=http://cdp.contoso.com/pki/contoso-cps.html
Basic Constraints isCA=True (тип сертификата — сертификат ЦС)
PathLength=0 (запрещается создание других промежуточных ЦС под текущим ЦС).

В таблице я выделил только те параметры, которые задаются в процессе установки. Остальные параметры будут настраиваться после установки. Исходя из этих данных сформируем параметры для командлета Install-AdcsCertificationAuthority:

Install-AdcsCertificationAuthority -CACommonName "Contoso Lab Issuing Certification authority" `
    -CADistinguishedNameSuffix "OU=Division Of IT, O=Contoso Pharmaceuticals, C=US" `
    -CAType EnterpriseSubordinateCa `
    -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" `
    -KeyLength 4096 `
    -HashAlgorithmName SHA256

После выполнения этой команды будет выведено сообщение о том, что установка ЦС не завершена и для её завершения необходимо отправить сгенерированный запрос (находится в корне системного диска) на вышестоящий ЦС и получить подписанный сертификат. Поэтому находим файл с расширением «.req» в корне системного диска и копируем его на корневой ЦС и на корневом ЦС выполняем следующие команды:

 # отправляем запрос на ЦС.
certreq -submit 'C:\CA-01.contoso.com_Contoso Lab Issuing Certification authority.req'
# предыдущая команда выведет номер запроса. Укажите этот номер запроса в следующей команде
# в моём случае это номер 2
certutil -resubmit 2
# после выпуска сертификата сохраните его в файл. При этом укажите тот же самый номер
# запроса, который был указан после выполнения первой команды
certreq -retrieve 2 C:\subca.crt

Полученный файл (subca.crt) необходимо скопировать обратно на издающий ЦС и завершить инсталляцию:

certutil -installcert c:\subca.crt
net start certsvc

Мы устанавливаем на ЦС выписанный сертификат и запускаем службу сертификатов. После успешной установки можно запустить оснастку Certification Authorities MMC (certsrv.msc) и убедиться, что сертификат успешно установлен и ЦС в работающем состоянии. Теперь осталось дело за постустановочной конфигурацией.

Итоговая настройка

По аналогии с корневым ЦС, нам потребуется сконфигурировать ряд параметров на издающем ЦС. Для этого мы снова напишем BATCH скрипт с использованием утилиты certutil.exe. Но прежде всего посмотрим установочную таблицу и выясним параметры, которые нам необходимо настроить:

Аналогичная таблица составляется и для издающего ЦС.

Название параметра Значение параметра
Сервер ЦС
Срок действия издаваемых сертификатов Максимально: 5 лет (остальное контролируется шаблонами сертификатов)
Публикация в AD (контейнеры) AIA
NTAuthCertificates
Состав CRL Base CRL
Delta CRL
Точки публикации CRT 1) По-умолчанию
2) \\IIS\PKI\contoso-pica<CertificateName>.crt
Точки распространения CRT 1) cdp.contoso.com/pki/contoso-pica<CertificateName>.crt
Точки публикации CRL 1) По-умолчанию
2) \\IIS\PKI\contoso-pica<CRLNameSuffix><DeltaCRLAllowed>.crl
Точки распространения CRL 1) cdp.contoso.com/pki/contoso-pica<CRLNameSuffix><DeltaCRLAllowed>.crl
Base CRL
Тип Base CRL
Срок действия 1 неделя
Расширение срока действия По умолчанию
Алгоритм подписи SHA256
Публикация в AD Нет
Delta CRL
Тип Delta CRL
Срок действия 1 день
Расширение срока действия По-умолчанию
Алгоритм подписи SHA256
Публикация в AD Нет

За основу мы возьмём скрипт с корневого ЦС и изменим только отдельные фрагменты:

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::                     Issuing CA post-installation script                            ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: все комментарии помечены знаком двойного двоеточия (::)
:: записываем пути для публикации и распространения сертификатов ЦС и списков отзыва
:: в отдельные переменные
SET CrlLocal=\\IIS\PKI\contoso-pica%%8%%9.crl
SET CDP=http://cdp.contoso.com/pki/contoso-pica%%8%%9.crl
SET AIA=http://cdp.contoso.com/pki/contoso-pica%%4.crt

:: Настраиваем пути публикации и распространения для сертификатов ЦС и списков отзыва.
certutil -setreg CA\CRLPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n65:%CrlLocal%\n6:%CDP%"

certutil -setreg CA\CACertPublicationURLs "1:%windir%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n2:%AIA%"

:: Поскольку мы не можем указывать пути публикации для файла сертификата, мы
:: вручную переименовываем его в необходимый формат и копируем в сетевую папку
ren %windir%\system32\CertSrv\CertEnroll\*.crt contoso-pica.crt
copy %windir%\system32\CertSrv\CertEnroll\contoso-pica.crt \\IIS\PKI

:: Задаём срок действия издаваемых сертификатов
certutil -setreg CA\ValidityPeriodUnits 5
certutil -setreg CA\ValidityPeriod "Years"

:: Задаём время жизни списков отзыва согласно нашей конфигурации
:: базовый CRL
certutil -setreg CA\CRLPeriodUnits 1
certutil -setreg CA\CRLPeriod "weeks"

:: Delta CRL
certutil -setreg CA\CRLDeltaPeriodUnits 1
certutil -setreg CA\CRLDeltaPeriod "days"

:: Включаем полный аудит событий на ЦС**
certutil -setreg CA\AuditFilter 127

:: Включаем наследование расширения Certificate Policies в издаваемых сертификатах 
certutil -setreg Policy\EnableRequestExtensionList +"2.5.29.32"

:: Включаем поддержку расширения OcspRevNoCheck, если планируется установка
:: сетевого ответчика (Online Responder или OCSP сервера)
certutil -v -setreg policy\editflags +EDITF_ENABLEOCSPREVNOCHECK

:: если версия ОС ниже, чем Windows Server 2016 необходимо задать алгоритм подписи.
:: Windows Server 2016 по умолчанию использует SHA256.
Certutil -setreg ca\csp\CNGHashAlgorithm SHA256

:: Перезапускаем службу ЦС для применения изменений.
net stop certsvc && net start certsvc

:: Публикуем списки отзыва.
certutil -CRL

Заметим, что в путях CRLDistribution Points, изменены флаги публикации (добавлена публикация Delta CRL) и добавлена переменная %9 в имя файла для поддержки уникального имени для дельты.

Здесь мы больше не создаём папку в корне системного диска, а используем сетевую папку PKI на сервере IIS, куда напрямую копируем файл сертификата и публикуем списки отзыва.

Прочие настройки

После того как издающий ЦС установлен и сконфигурирован, убедитесь, что всё прошло без ошибок:

  • Откройте оснастку Certification Authorities MMC (certsrv.msc), убедитесь, что служба запущена
  • Выберите свойства узла ЦС и проверьте поля сертификата, что они соответствуют ожидаемым значениям.
  • Откройте сетевую папку PKI (на сервере IIS) и убедитесь, что там есть два файла сертификата (корневого и издающего ЦС) и три списка отзыва (один для корневого, два для издающего ЦС). Убедитесь, что поля в сертификатах и списках отзыва соответствуют ожидаемым значениям.

Когда основные параметры проверены, необходимо убедиться в правильной связи иерархии ЦС и доступности всех внешних файлов для клиентов. Для этого на сервере ЦС (а лучше, на рабочей станции, где установлены средства удалённого администрирования ЦС) необходимо запустить оснастку Enterprise PKI Health (pkiview.msc). Оснастка автоматически построит текущую иерархию и проверит доступность всех путей для скачивания сертификатов ЦС и списков отзыва. Никаких ошибок быть не должно. Если есть ошибка, необходимо её точно идентифицировать и устранить. В случае успешной настройки оснастка будет выглядеть следующим образом для корневого ЦС:

И для издющего ЦС:

Если вся итоговая конфигурация соответствует ожидаемым значениям и оснастка Enterprise PKI Health не показывает ошибок, это может судить о том, что PKI установлена верно.

Рекомендации

После того, как все ЦС установлены, сконфигурированы и их работоспособность проверена, можно приступать к их эксплуатации. В этом разделе я дам несколько полезных рекомендаций, которых следует придерживаться, чтобы предостеречь себя от возможных потенциальных проблем во время эксплуатации PKI.

Шаблоны сертификатов

Наряду с установкой издающего ЦС, в Active Directory устанавливается набор уже готовых шаблонов сертификатов. Их можно просмотреть в оснастке Certificate Templates MMC (certtmpl.msc). Рекомендации по шаблонам сертификатов:

Использование готовых шаблонов сертификатов

Я рекомендую использовать их копии, даже если вы не планируете вносить в них изменения. Для создания копии шаблона выберите в списке подходящий шаблон, в контекстном меню выберите Duplicate Template и создайте его копию. Целесообразно в имя шаблона включить название компании, чтобы отличить предустановленный шаблон от вами созданного. Например, Contoso Web Server, Contoso Smart Card Logon. Это позволит сравнить настройки исходного и вами созданного шаблона в случае неработоспособности шаблона.

Версия шаблона

Начиная с Windows Server 2012, интерфейс создания шаблона несколько изменился. В самом начале появляется окно с выбором версии ОС на ЦС и предполагаемом клиенте:

Если у вас используются современные версии ОС (например, Windows 7 и выше), может появиться желание выставить настройки на максимум. Если вы не уверены, что ваше приложение совместимо с CNG (Cryptography Next Generation), следует использовать настройки, которые приведены на картинке. Если вы выставляете ОС сервера и клиента выше, чем Windows Server 2003/Windows XP, шаблон будет использовать криптографию несовместимую с этими приложениями. Например, большинство приложений, написанных на .NET, семейство продуктов System Center, службы федераций (AD FS) и т.д. не смогут использовать ключи таких сертификатов (но проверять смогут).

Успешно такие сертификаты смогут использовать приложения, которые используют не .NET, а нативные функции CryptoAPI. К таким приложениям можно отнести, например, IIS, Remote Desktop Services.


Поля Subject и Subject Alternative Names

Существует два метода заполнения поля Subject и расширения Subject Alternative Names: автоматический и ручной. Это настраивается в настройках шаблона сертификата, во вкладке Subject Name.

Если выбран второй пункт (как на картинке), ЦС игнорирует имя субъекта из запроса сертификата и заполняет эти поля из свойств учётной записи пользователя или устройства, которое запрашивает сертификат. В ряде случаев это не подходит (например, сертификаты для внутренних веб-сайтов) и имя субъекта заполняется из значения в запросе сертификата. Тогда переключатель необходимо выставить в верхнее положение. Дополнительно к этому, на вкладке Issuance Requirements обязательно надо выставить галочку «CA certificate manager approval».

Это необходимо затем, что имя для сертификата никак не проверяется. Если этот момент не контролировать, пользователь может запросить сертификаты на любое имя и скомпрометировать весь лес Active Directory. Вряд ли вы позволите рядовому пользователю получить сертификат на имя администратора. После требования одобрения запроса менеджером сертификатов на ЦС, каждый запрос с явным указанием субъекта сертификата будет попадать на ЦС в папку Pending Requests и не будет подписан, пока оператор ЦС не изучит его содержимое и не примет решение о выпуске. Т.е. каждый такой запрос необходимо вручную проверять на содержимое и убедиться, что в запросе указаны верные и допустимые имена. В противном случае запрос должен быть отклонён.

Права на шаблоны сертификатов

Шаблоны сертификатов в Active Directory хранятся в разделе configuration naming context, который реплицируется между всеми контроллерами домена в лесу. Поэтому для назначения прав на шаблоны сертификатов можно использовать только глобальные и универсальные группы. Избегайте назначения прав отдельным пользователям и устройствам.

Обновление сертификатов ЦС

Периодически необходимо обновлять сертификаты ЦС. Рассмотрим несколько аспектов, связанных с обновлением сертификатов ЦС.

Периодичность обновления сертификата ЦС

Это делается в следующих случаях:

  • Срок жизни сертификата ЦС истекает;
  • Ключ ЦС скомпрометирован;
  • Необходимо изменить длину ключа или алгоритм подписи;
  • Слишком большой список отзыва (больше нескольких мегабайт).

Первый вопрос, если всё идёт штатно, за какое время до истечения срока действия сертификата ЦС его нужно обновлять?

Сертификат издающего ЦС должен обновляться за максимальный срок действия издаваемых сертификатов. В нашем случае срок действия сертификата издающего ЦС 15 лет, а максимальный срок действия издаваемых сертификатов 5 лет (см. конфигурационную таблицу). Это означает, что сертификат издающего ЦС необходимо обновить через 10 лет. Если это время затянуть, то мы не сможем обеспечить необходимый срок действия для самого долгосрочного шаблона.

Порядок обновления ЦС

В нашей двухуровневой иерархии сертификаты корневого и издающего ЦС имеют одинаковый срок действия. Поэтому, когда вы принимаете решение об обновлении сертификата любого ЦС, необходимо обновлять их вместе. Первым обновляется сертификат корневого ЦС, затем сертификат издающего ЦС.

Генерация ключей при обновлении сертификатов ЦС

При обновлении сертификатов ЦС вам предлагается две опции: использовать существующую ключевую пару или сгенерировать новую:

В диалоговом окне обновления ключевой пары приведены рекомендации Microsoft по выбору ключевой пары. Однако, практика показывает, что эти рекомендации устарели. Следует всегда генерировать новую ключевую пару. При использовании нескольких сертификатов ЦС клиентский модуль построения цепочки сертификатов иногда может ошибиться и выбрать неправильный сертификат. В базе знаний Microsoft отмечены такие проблемы. Примеры статей:

  • Certificate validation fails when a certificate has multiple trusted certification paths to root CAs.
  • «0x80092013, CRYPT_E_REVOCATION_OFFLINEA» error message when you try to verify a certificate that has multiple chains in Windows Server 2008 or in Windows Vista.

При генерации новой ключевой пары для каждого сертификата будет гарантирован только один путь к корневому сертификату и модуль построения цепочек сертификатов уже не ошибётся.

Резервное копирование

Вопросы резервного копирования и восстановления после отказа являются отдельной темой. Здесь я лишь отмечу основные моменты, которые следует учесть при планировании стратегии резервного копирования.

Microsoft Active Directory Certificate Services предоставляет инструменты для резервного копирования компонентов ЦС:

  • Оснастка Certification Authority MMC (certsrv.msc);
  • Утилита certutil.exe с параметром -backup.

С ними можно сделать резервную копию для ключевой пары ЦС и базы данных. Однако эти инструменты не позволяют делать резервную копию настроек ЦС. Эти операции необходимо выполнять вручную. Все настройки ЦС находятся в реестре по следующему пути:

HKLM\System\CurrentControlSet\Services\CertSvc

При резервном копировании всегда экспортируйте данную ветку реестра. При восстановлении ЦС сохранённый REG файл импортируется обратно в реестр после установки роли ЦС.

Полный список элементов ЦС, который подлежит обязательному резервному копированию выглядит так:

  • Ключи и сертификаты ЦС;
  • База данных ЦС;
  • Настройки ЦС из реестра;
  • Предустановочный конфигурационный файл;
  • Установочные и конфигурационные скрипты.

Этот список не зависит от принятой в вашей компании стратегии резервного копирования, он всегда должен быть включён в список резервных копий.

Об авторе

Вадим Поданс — специалист в области автоматизации PowerShell и Public Key Infrastructure, Microsoft MVP: Cloud and Datacenter Management с 2009 года и автор модуля PowerShell PKI. На протяжении 9 лет в своём блоге освещает различные вопросы эксплуатации и автоматизации PKI на предприятии. Статьи Вадима о PKI и PowerShell можно найти на его сайте.

Служба сертификации Active Directory (AD CS) позволяет развернуть вам собственную инфраструктуру PKI в доменной сети, и используется для выдачи и управления сертификатами. В этой статье мы рассмотрим сценарий развертывания центра сертификации: установку корпоративной службы AD CS на Windows Server, настройку групповой политики выдачи сертификатов в домене.

В продуктивной среде не рекомендуется развёртывать службы AD CS на контроллере домене Active Directory. В продуктивной среде нужно реализовать двухуровневую архитектуру PKI:

  • Отдельный корневой сервер сертификации (Root CA) – это сервер выдает сертификат для подписи выдающего сервера сертификации. После генерации доверенного корневого сертификата и CRL, этот сервер рекомендуется выключить (это позволит снизить риски компрометации ключа). В нашем примере этот сервер называется RootCA;
  • Выдающий сервер сертификации (Subordinate CA) – это основной сервер, который будет выдавать сертификаты клиентам в организации. Также он хранит список отозванных сертификатов и используется для проверки отозванных сертификатов. Имя сервера subordCA

Служба сертификации Active Directory Certificate Services это одна из стандартных ролей Windows Server 2022/2019/2016.

Сначала нужно настроить корневой CA (сервер RootCA). Это Windows Server, который не нужно добавлять в домен AD.

Запустите Server Manager и выберите Add roles and features;

  1. Выберите текущий сервер, в списке ролей отметьте Active Directory Certification Authority и нажмите Next;
    Установка Active Directory Certification Authority

  2. В списке компонентов роли AD CS выберите Certification Authority;
    Установить Certification Authority в Windows Server

  3. После окончания установки, нужно выполнить первичную настройку роли ADCS. Для этого в Server Manager нажмите на флажок и щелкните по пункту Configure Active Directory Certificate Services on the destination server;
    Настройка Active Directory Certificate Services

  4. Выберите сервисы для настройки;
    Роль Certification Authority

  5. Так как сервер rootCA не добавлен в домен AD, выберите здесь Standalone CA -> Root CA;
    Установить Standalone CA - data-lazy-src=

  • Выберите Create a new private key;
    Create a new private key

    Параметры ключа оставьте по умолчанию:

    Cryptographic provider: RSA
    Key length: 2048
    Hash algorithm: SHA256

    Криптографические параметры RSA ключа для CA

  • Имя CN можно оставить без изменений;
  • На странице Validity period укажите срок действия сертификата CA (укажите 15 лет здесь);
    Срок действия ключа CA

  • Оставьте пути к базе данных CA и логам по умолчанию: c:\windows\system32\certlog
    База данных и логи CA

  • Если все настроено верно, появится надпись: Configuration succeeded.
    Установка AD Certificate Services завершена

  • Совет. Вы можете установить роль ADCS в Windows Server с помощью PowerShell:

    Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools

    После установки роли AD CS выполните команду:

    Install-AdcsCertificationAuthority -CAType EnterpriseRootCA

    Для управления ADCS используется специальная оснастка Certification Authority (certsrv.msc). Запустите ее.

    Затем откройте каталог C:\Windows\System32\CertSrv\CertEnroll и скопируйте оттуда сертификат и список отзыва сертификатов. Эти файлы понадобятся в дальнейшем при настройке выдающего центра сертификации.

    Теперь переходим к настройке второго сервера Subordinate CA (subordCA).

    1. Установите на нем роль AD CS, со следующими компонентами:
    • Certification Authority
    • Certification Authority Web Enrollment
    • Certification Authority Web Service
    1. Выберите тип CA — Subordinate CA;
    2. На странице Private Key выберите Create a new private key;
    3. Настройки криптографии оставьте по умолчанию, задайте Common Name
    4. На странице Certificate request выберите Save a certificate request to file on the target machine;
    5. Нажмите Configure чтобы начать установку.

    Теперь нужно получить сертификат от вашего rootCA на основе вашего запроса:

    1. Скопируйте файл *.reg в корень диска C:\ на rootCA;
    2. Выполните команду:
      certreq -submit "C:\subordCA.tect.loc_ SUBORDCA-1.req"
    3. Появится окно Certification Authority List, в котором нужно выбрать ваш rootCA и нажмите OK;
    4. Теперь откройте консоль Certification Authority на Root CA и перейдите в раздел Pending Requests. Ваш запрос должен появится в этой консоли. Запомните номер запроса, например Request ID 2. Щелкните по нему правой кнопкой и выберите All Tasks -> Issue;
    5. Экспортируйте подписанный сертификат в файл с помощью команды:
      certreq -retrieve 2 C:\SubordCA.crt

    Скопируйте файл SubordCA.crt на промежуточный сервер сертификации. Установите корневые сертификаты и список отзыва, которые вы скопировали ранее:

    certutil -dspublish -f "C:\PS\RootCA.crt"
    certutil -addstore -f root "C:\PS\RootCA.crt"
    certutil -addstore -f root "C:\PS\RootCA.crl"

    Теперь установите сертификат, который вы подписали:

    certutil -installcert C:\PS\SubordCA.crt

    Запустите службу CertSrv. Ваш промежуточный сервер сертификации готов к выдаче сертификатов. Хост RootCA можно отключить.

    Теперь можно настроить в домене групповую политику для автоматической выдачи сертификатов (autoenrollment) для клиентов домена.

    1. Откройте консоль Group Policy Management, щелкните по корню домена и выберите “ Create a GPO in this domain, and Link it here…”;
      Создать GPO

    2. Укажите имя политики и перейдите в режим редактирования;
    3. Перейдите в Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Public Key Policies
    4. Выберите шаблон «Certificate Services Client — Auto-Enrollment»
    5. Включите политику и настройте ее следующим образом
      Configuration mode: Enabled
      Renew expired certificates, update pending certificates and remove revoked certificate
      Update certificates that use certificate templates

      Политика выдачи сертификатов для клиентов домена Auto-Enrollment

    Обновите политики на клиентах и проверьте, что ваш корневой сертификат появился в Trusted Root Certificates.

    A Windows Active Directory Certification Authority server (AD CA), also known as a Certificate Authority, is an essential service to every organization’s Active Directory as it can manage, issue, revoke and renew digital certificates used to verify the identity of users, computers and other network services.

    This guide will show you how to quickly install and setup a Certification Authority server on Windows 2016 server. The guide includes the installation of the Certification Authority Web Enrollment service to allow your organization to request, renew and download certificates via a simple web interface.

    Execution Time: 10 — 15 minutes

    Step 1 – Installation of Windows Active Directory Certificate Services

    Launch Server Manager and go to Manage > Add Roles and Features:

    windows ca server installation server manager

     At the next screen select simply click on the Next button:

    windows ca server installation add roles features

     Ensure Role-based or feature-based installation is selected and click on Next:

    windows ca server installation select destination server

     At the next screen select the destination server from the available Server Pool and click on the Next button:

    windows ca server installation select server

    Next, tick the Active Directory Certificate Services from the available roles:

    windows ca server installation select server role

    The Add Roles and Features Wizard will immediately pop up a new window requiring you to confirm the installation of additional tools needed to manage the CA feature. To confirm, click on the Add Features button:

    windows ca server installation add additional features

    You will now return to the previous window. Simply click on the Next button to continue.

    At the Select Features window just click on the Next button:

    windows ca server installation select features

    The next section is around the Certificate Services we want to install. The initial window warns that once the computer/server name cannot be changed after a certification authority (CA) has been installed. Take a moment to read through the information and click on Next when ready:

    The next window allows you to select the desired Certification Authority services to be installed. The first one, Certification Authority is selected by default however it is advisable to also select the Certification Authority Web Enrollment feature as it will provide a simple web interface from where you can submit certificate signing requests, download certificates and more.

    As soon as the Certification Authority Web Enrollment feature is selected a pop up window will appear requesting confirmation to install additional features needed. Click on Add Features:

    You’ll now be returned back to the previous window, click on Next to continue.

    The next screen is required for the installation of IIS Web Services. If you already have IIS installed, you won’t need to run through these steps. Click on Next to continue:

    windows ca server installation iis web server role

    At the next screen, IIS Web Server options, we can easily accept the default selected services. Feel free to scroll down and check the available options otherwise simply click on Next to continue:

    windows ca server installation iis web server features

    The final window is a simple confirmation of all selected services and features. Note the automatic restart option at the top – it’s advisable not to use it as the Window Server might restart once installation is complete.

    When ready, click on the Install button to begin the installation:

    windows ca server installation confirm installation options

    Installation can take from 5 to 10 minutes depending on how busy the server is. Once complete it is necessary to configure Active Directory Certificate Services on the destination server by clicking on the link provided at the end of the installation wizard:

    windows ca server installation progress

    Step 2 — Configuring Active Directory Certificate Services (AD CS)

    Configuring Active Directory Certificate Services is a simple and quick process. You can initiate this process from the previous step or from the Server Manager Dashboard by clicking on the exclamation mark and selecting Configure Active Directory Certificate Services on the destination server:

    windows ca server installation configuring ca

    Once the configuration process is initiated, the system will require credential confirmation to install the necessary role services. Enter a username that belongs to the Local and Enterprise Admin group. By default the Administrator username will appear. When ready click on Next:

    windows ca server configuration credentials

    Next, select the Role Services to be configured. The two services available for us are Certification Authority and Certification Authority Web Enrollment. Select them both and click on Next:

    windows ca server configuration role services

    At the next screen select Enterprise CA (default) as CA setup type and click on Next:

    windows ca server configuration setup type

    Next, assuming this is the first and possibly only CA in your organisation, select Root CA (default) as the type of CA and click on Next:

    windows ca server configuration ca type

    Next, we will create a new private key (default option) and click on Next to configure its options:

    windows ca server configuration private key

    On the next screen we can leave all options to their default settings and continue. Alternatively a different hash algorithm can be selected e.g SHA384 or SHA512 with a larger Key Length. When ready, click on Next:

    windows ca server configuration ca cryptography

    Here we can change or leave the suggested Common Name (CN) for our Certification Authority (CA). When ready, click on Next:

    windows ca server configuration ca name

    The Validity Period determines how long the certificate generated for our CA will be valid. By default this is 5 years however it can be adjusted either way. Enter the desirable amount of years and click on Next:

    windows ca server configuration certificate validity period

    Last option is the configuration of the database locations. Accept the default locations and click on Next:

    windows ca server configuration database location

    Finally, we are presented with a confirmation window with all settings. This is the last chance to change any settings or values. When ready, click on Configure:

    windows ca server configuration confirmation of settings

    After a few seconds the Results window will appear confirming all roles, services and features have been successfully configured.  Click on Close to exit the configuration wizard:

    windows ca server configuration complete

    We’ll now find the Certificate Authority MMC available in the Administrative Tools:

    windows ca server mmc console

    We can also visit the CA Server’s web site to request and download signed certificates by visiting the URL:  http://<server IP>/certsrv e.g http://192.168.1.10/certsrv:

    windows ca server webserver access

    Summary

    This article explained the role and importance of a Windows Certificate Authority Server provided a step-by-step guide how to install and configure a Windows 2016 Certification Authority Server including the Certification Authority Web Enrollment component.

    Skip to content

    Home/Posts/How to Install Active Directory Certificate Services (AD CS) in Windows Server 2016

    How to Install Active Directory Certificate Services (AD CS) in Windows Server 2016

    Certificate authorities play critical roles in organizational security. Some CAs can help you enhance internet security, while others are effective at protecting internal networks and resources. You can choose to obtain certificates for your users and applications through one of the following ways:

    • You can use certificates from a Public Certificate Authority (public CA)
    • You can create and operate a Private Certificate Authority (private CA or internal CA) to issue certificates

    In this article, I’ll be covering the steps to implement your own CA using Active Directory Certificate Services (AD CS) in Windows Server 2016 which allows you to implement public key infrastructure (PKI) for your organization.

    Protect Your Data with BDRSuite

    Cost-Effective Backup Solution for VMs, Servers, Endpoints, Cloud VMs & SaaS applications. Supports On-Premise, Remote, Hybrid and Cloud Backup, including Disaster Recovery, Ransomware Defense & more!

    What is PKI?

    Properly authenticating and maintaining certificates is essential to keep your infrastructure secure. Public Key Infrastructure (PKI) issues and manages digital certificates between authenticated users and trusted resources which enables an organization to secure its data, communications, and business transactions through encryption.

    Active Directory Certificate Services (AD CS): Explained

    Active Directory Certificate Services (AD CS) is one of the Microsoft Services that allows you to create and manage public key infrastructure (PKI) certificates. These digital certificates are used to authenticate users and devices on a network, secure HTTPS communications, and more.

    Prerequisites to Install AD CS

    • Windows Server 2016
    • The computer (Windows Server 2016) on which you are installing AD CS must be:
      • Joined to a domain where Active Directory Domain Services (AD DS) is installed
      • Configured with a static IP address
    • Log on as a member of both the Enterprise Admins group and the root domain’s Domain Admins group is required

    Installing Active Directory Certificate Services (AD CS) – Step by Step

    Step 1: Open Server Manager, go to Manage, and click Add Roles and Features. It opens the Add Roles and Features Wizard. Click Next. Note: If you have previously selected to skip this page by default, you will be going to the next page directly

    Download Banner

    Step 2: In Select Installation Type, select Role-based or feature-based installation and click Next.

    Active Directory Certificate Services

    Step 3: Select ‘Select a server from the server pool’. In Server Pool, ensure that the local computer is selected and click Next.

    Active Directory Certificate Services

    Step 4: Select Active Directory Certificate Services from Roles. Then, you will be prompted to add the required features. Click Add Features and then click Next.

    Active Directory Certificate Services

    Active Directory Certificate Services

    Step 5: In Select Features, click Next.

    Step 6: On the Active Directory Certificate Services page, read the information and click Next.

    Active Directory Certificate Services

    Step 7: In Role Services, select Certification Authority, and click Next.

    Active Directory Certificate Services

    Step 8: Click Install. Note: Do not close the wizard during the installation process.

    Active Directory Certificate Services

    Step 9: When the installation is complete, click the link: Configure Active Directory Certificate Services on the destination server

    Step 10: The AD CS Configuration wizard opens. You need to first specify credentials to configure roles. Enter the credentials of a member in the Enterprise Admins group and click Next.

    Active Directory Certificate Services

    Step 11: In Role Services, click Certification Authority, and then click Next.

    Active Directory Certificate Services

    Step 12: On the Setup Type page, select Enterprise CA and click Next.

    Active Directory Certificate Services

    Step 13: On the Specify the type of the CA page, select Root CA is selected, and click Next.

    Active Directory Certificate Services

    Step 14: On the Specify the type of the private key page, select Create a new private key and click Next.

    Active Directory Certificate Services

    Step 15: On the Cryptography for CA page, you can keep the default settings for the cryptographic provider (RSA#Microsoft Software Key Storage Provider) and the hash algorithm (SHA2). The default key length is 2048

    Active Directory Certificate Services

    Step 16: On the CA Name page, You can either keep the suggested common name or specify a name to identify this CA. Note: You cannot change the CA name after you have installed AD CS.

    Active Directory Certificate Services

    Step 17: On the Validity Period page, you can specify the validity period in Years, Months, Weeks, or Days. The default setting is 5 years

    Active Directory Certificate Services

    Step 18: On the CA Database page, specify the folder location for the certificate database and the certificate database log. Then, click Next.

    Active Directory Certificate Services

    Step 19: In Confirmation, click Configure to apply your selections, and then click Close.

    Active Directory Certificate Services

    Step 20: The installation process will begin and the specified role will be configured.

    Active Directory Certificate Services

    Now Active Directory Certificate Services have been successfully installed in your Windows Server.

    Download CA

    Open the following path in the web browser: localhost/certsrv. Then, click on the link: Download a CA certificate to download private key details for Certificate Authority.

    Active Directory Certificate Services

    Follow our Twitter and Facebook feeds for new releases, updates, insightful posts and more.

    Try BDRSuite for Free!

    Experience our cost-effective backup solution for VMs, Servers, Endpoints, Cloud VMs, and SaaS applications. Start your 30-day free trial today no credit card required and no feature restrictions!

    I am part of the Product Management team at Vembu Technologies, leading initiatives to drive brand awareness and product adoption. I specialize in crafting data-driven marketing strategies, utilizing my expertise in market analysis and campaign management to effectively position Vembu’s products in a competitive landscape.

    Schedule a live demo with one of our product experts

    Start your full-featured 30-day free trial

    Explore detailed pricing, editions & features

    We will see below topics in this article

    • Install Certificate Authority on Windows Server 2016
    • Configuring Certificate Authority on Windows Server 2016
    • Assigning Certificate on Exchange Server 2016
    • Assigning on Test Machine to see Certificate authority is working for Outlook Web Access

    Step 1:

    You need to have this role installed to have a  Certificate Authority

    Preferred to be on Dedicated Server or on a Domain Controller.

    Open Server Manager – Manage – Add Roles and Features

    image

    Step 2:

    Choose : Active Directory Certificate Services

    Choose Next

    And Choose : Certification Authority Web Enrollment

    image

    Choose :

    • Certification Authority
    • Certification Authority Web Enrollment

    image

    Choose Install and Close

    image

    Step 3:

    To Configure Active Directory Certificate Services – Choose the Exclamation Mark on the Flag

    Configure Active Directory Certificate Services on the Destination Server

    image

    Choose Next

    image

    Choose

    • Certificate Authority
    • Certification Authority Web Enrollment

    image

    Choose Enterprise CA

    • Enterprise CAs Must be domain members and are typically online to issue certificates or certificate policies.

    image

    Step 4:
    Choose Root CA

    Root CAs are the first and may be the only CAs Configured in a PKI Hierarchy.

    image

    Step 5:
    Create a new Private key

    image

    Step 6:

    • Use SHA256
    • RSA#Microsoft Software Key Storage Provider
    • Key Length – 2048

    image

    Step 7:

    Click Next

    image

    Step 8:
    By Default Certificate is valid for 5 years , Don’t make any changes on it , Click next

    image

    Step 9:

    Specify Certificate Authority Default Database Locations

    image

    Click Configure

    image

    Choose Configure

    image

    We have successfully Installed and Configured – Certificate Authority on Windows Server 2016

    Let us see how to Request a Create a Simple Cert from Internal Certificate Authority

    Step 10:

    Browse http://localhost/certsrv/

    You would see a page below like this , Choose “Request a Certificate”

    image

    Step 11 –
    Click on Advanced Certificate Request

    image

    Step 12:
    Choose the Second one
    Submit a certificate request by using a base-64-Encoded CMC

    image

    Step 13:

    Now Copy the  Note pad Certificate Request Data – You have to generate a Certificate Request from the application. For example how we are doing in exchange server

    How to Create an SSL Certificate Request for Exchange Server 2013

    Or you can use https://www.digicert.com/util/

    Example – Data Should be like below –

    —–BEGIN NEW CERTIFICATE REQUEST—–
    MIIEXDCCA0QCAQAwgYAxHTAbBgNVBAMMFGV4Y2gyMDE2LmNsb3VkaWQuYml6MRYw
    FAYDVQQLDA1FeGNoYW5nZSBUZWFtMRUwEwYDVQQKDAxDYXJlRXhjaGFuZ2UxETAP
    BgNVBAcMCE5ldyBZb3JrMRAwDgYDVQQIDAdOZXcgWW9yMQswCQYDVQQGEwJVUzCC
    ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXVbwTkx4zhUobUvODoSwf1
    8b0ti+dQ/WAoJPHlcSTW4weE5vVwQZbjtTqRhHOAOFEDYDnwZhuU1fOjjro+B2B3
    zMTlvq0x7JJPsA9Zc611p+slYeTs/pI8hT9Ud2FgbwE3veF5u2uVw6/lbZdA20yU
    ZizIsCJkq9Qo2hLpMji3MB4eFRtyvd1eQpCJPnqseUdRVzfdSwN2zf0U7UQCzzG+
    q7bL1Pb2jfjFlhr5xb9/RfpaR/U3TmVHjf3/u49mK1JOBuJwJQVCK/HBYHfMPOp6
    VEjt8IVApclOE7tZcR3DjjyF73tHYfxUJp2HuVWml/UVemKIcSfVYOcGofNrF88C
    AwEAAaCCAZQwGgYKKwYBBAGCNw0CAzEMFgo2LjIuOTIwMC4yMF8GCSsGAQQBgjcV
    FDFSMFACAQUMFEVYQ0gyMDE2LkNsb3VkaWQuYml6DBFDTE9VRElEXEVYQ0gyMDE2
    JAwiTWljcm9zb2Z0LkV4Y2hhbmdlLlNlcnZpY2VIb3N0LmV4ZTByBgorBgEEAYI3
    DQICMWQwYgIBAR5aAE0AaQBjAHIAbwBzAG8AZgB0ACAAUgBTAEEAIABTAEMAaABh
    AG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBp
    AGQAZQByAwEAMIGgBgkqhkiG9w0BCQ4xgZIwgY8wDgYDVR0PAQH/BAQDAgWgMFAG
    A1UdEQRJMEeCFGV4Y2gyMDE2LmNsb3VkaWQuYml6ghhBdXRvRGlzY292ZXIuQ2xv
    dWRpZC5iaXqCCEVYQ0gyMDE2ggtDbG91ZGlkLmJpejAMBgNVHRMBAf8EAjAAMB0G
    A1UdDgQWBBQWEHXi+M7zoQZ3FlnOeRqsRscG0jANBgkqhkiG9w0BAQUFAAOCAQEA
    FlYjkXO1rxadJmNB9g9KEqWU7NlxC3UdX2zyqWwK06cDB3/k+ThKBiYE7uoiaais
    YqlE6yoT3T09Nf+rihH8DfS+of14oMYQTKo9By9VdisD6R/iztY05StbVoSambRk
    jnOohs1z4v3itufuEzQaqf8Q0Qu8w2xsVVRZx2t0SKfktPASqOzJZEIRS6egqELH
    h9dkQBjsdOaTSsqapJXiHpMN53wxXNoztO6mWSVtPzgbfML0+NLT41ZBiIAMjyIj
    ztp61S/7O5dfoR9St0cwzaxWSZ5XPriJzKfYQ3dRvl+j/e1gi/rJmw9IUyWGQ2qz
    27HqRbsEa/LqFharKDjeBw==
    —–END NEW CERTIFICATE REQUEST—–

    SavedReqest – (NEW CERTIFICATE REQUEST Data like above)
    Choose Template : WebServer

    Choose Submit

    image

    Step 14:
    Choose “Base 64 encoded”

    Download Certificate

    image

    Step 15:
    Save the Certificate – should be .cer extension

    image

    Lets how we are applying on Exchange 2016 for Example

    image

    Copied my Request .CER File generated from CA to the Exchange and using it.

    image

    Shows Certificate Invalid.

    image

    Lets see why.

    1 – Start – MMC –FILE – Add/Remove Snap-In

    2 – choose certificates – Add

    3 – Computer Account

    4 – Local Computer

    5 – Expand Personal – Certificates / Expand Trusted Root Authorities Certificates

    image

    Now Login to Root CA Server and Export the Root CA.

    image

    Now login to Exchange Server Import the export cert.

    image

    Now Certificates looking ok

    Make sure you Assign the Certificate for IIS in Exchange Control Panel.

    image

    Now you can see things are fine locally on Exchange 2016 server –

    image

    – Lets see how we can use on Desktop

    First Login to Exchange Server MMC and Export the Certificate with all the certificate path into a PFX file.

    Note : The desktop doesn’t need the private keys from any certificate in the chain.

    Having the private key gives the ability to decrypt all the traffic between the client and the server even if that traffic is coming from someone else. It also makes a man in the middle attack on this SSL connection possible.

    On 2 : For End user desktops – Choose do no export private key and use that certificate for import.

    image

    image

    Now we have the PFX File Exported.

    Open MMC and Import or Install PFX Desktop.

    image

    image

    Now browsing the URL –

    image

    Satheshwaran Manoharan

    Satheshwaran Manoharanhttps://www.azure365pro.com

    Award-winning Technology Leader with a wealth of experience running large teams and diversified industry exposure in cloud computing. From shipping lines to rolling stocks.In-depth expertise in driving cloud adoption strategies and modernizing systems to cloud native. Specialized in Microsoft Cloud, DevOps, and Microsoft 365 Stack and conducted numerous successful projects worldwide. Also, Acting as a Technical Advisor for various start-ups.

    Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
  • Как включить макросы в excel 2003 на windows 10
  • Установка windows 10 это занимает немного больше времени чем ожидалось
  • Как переименовать имя компьютера на windows 10
  • Программа для проверки портов windows
  • Ваш pin код перестал быть доступным windows 10