Внедрение PKI на платформе Windows Server 2012: настройка Root CA

Приступим к настройка корневого центра сертификации rca:

Перейдем в папку C:Windows и создадим там файл CAPolicy.inf (кодировка ANSI) следующего содержания:

[Version]
Signature=”$Windows NT$”
[PolicyStatementExtension]
Policies=InternalPolicy
[InternalPolicy]
Notice=”Internal Policy Statement”
URL=http://pki.lab.kagarlickij.com/cps.txt
[certsrv_server]
RenewalKeyLength=2048
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=10
CRLPeriod=weeks
CRLPeriodUnits=26
CRLOverlapUnits=1
CRLOverlapPeriod=weeks
CRLDeltaPeriod=Days
CRLDeltaPeriodUnits=0
AlternateSignatureAlgorithm=1

Сейчас я поясню, какие параметры мы указали этим шагом:

RenewalKeyLength – длинна ключа, которая будет использована при обновлении сертификата;

RenewalValidityPeriod – единицы измерения срока действия “обновленного” сертификата;

RenewalValidityPeriodUnits – срок действия “обновленного” сертификата;

CRLPeriod, CRLPeriodUnits – периодичность публикации CRL;

CRLOverlapUnits, CRLOverlapPeriod – подстрахуем администратора системы, дав дополнительное время на распространение обновленного CRL;

CRLDeltaPeriodUnits=0 – отключаем публикацию разностных CRL — для автономного корневого ЦС применяется именно такая установка.

AlternateSignatureAlgorithm – включение этого парамера означает включение стандарта PKCS# V2.1, что приведет к несовместимостям с Windows XP и Windows Server 2003.

Добавим роль AD CS:

Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools

Затем пройдем по шагам и определим базовые настройки:

Screen Shot 2014-09-08 at 12.06.06 PM

Длинна ключа 2048 бит, алгоритм SHA1 – это далеко не максимум на сегодняшний день, но важнее соблюсти совместимость.

Ознакомимся с дефолтными настройками путей к AIA и CDP для нашего корневого CA:

Get-CAAuthorityInformationAccess | fl

Get-CACRLDistributionPoint | fl

Screen Shot 2014-09-08 at 12.08.43 PM

Screen Shot 2014-09-08 at 12.08.52 PM

В “реестровом” представлении эти параметры выглядят так:

1 2

Дефолтные расположения нам не походят, поэтому укажем собственные, используя certutil -setreg :

certutil -setreg CACRLPublicationURLs “1:C:Windowssystem32CertSrvCertEnroll%3%8%9.crln2:http://pki.lab.kagarlickij.com/%3%8%9.crl”

certutil –setreg CACACertPublicationURLs “1:C:Windowssystem32CertSrvCertEnroll%1_%3%4.crtn2:http://pki.lab.kagarlickij.com/%1_%3%4.crt”

Сейчас я поясню сиснтаксис этих команд:

n – это новый путь, новая строка при обработке команды

Цифра после n – это сумма цифровых обозначений парамеров (чекбоксов на вкладке Extensions в свойтвах CA).

Вот “расшифровка” для CDP:

1– Publish CRLs to this location.
2 – Include in the CDP extension of issued certificates.
4 – Include in CRLs. Clients use this to find Delta CRL locations.
8 – Include in all CRLs. Specifies where to publish in AD DS when publishing manually.
64 – Publish Delta CRLs to this location.
128 – Include in the IDP extension of issued CRLs.

.. а вот для AIA:

2– Include in the AIA extension of issued certificates

32– Include in the online certificate status protocol (OCSP) extension

Обратите внимание, для публикации в C:Windows… и http://… используются разные параметры. Просто откройте GUI и внимательно просмотрите опции.

Соответствие переменных значениям для CDP:

%1 – <ServerDNSName>
%2 – <ServerShortName>
%3 – <CaName>
%6 – <ConfigurationContainer>
%7 – <CATruncatedName>
%8 – <CRLNameSuffix>
%9 – <DeltaCRLAllowed>
%10 – <CDPObjectClass>
%11 – <CAObjectClass>

Соответствие переменных реальным значениям для AIA:

%1 – <ServerDNSName>
%2 – <ServerShortName>
%3 – <CaName>
%4 – <CertificateName>
%6 – <ConfigurationContainer>
%7 – <CATruncatedName>
%11 – <CAObjectClass>

Проверим результат:

Screen Shot 2014-09-10 at 2.41.27 PM

Укажем параметры списка отзывов (аналогично тому, что было указано в CAPolicy.inf):

certutil -setreg CACRLDeltaPeriodUnits 0
certutil -setreg CACRLDeltaPeriod “Days”
certutil -setreg CACRLOverlapPeriodUnits 2
certutil -setreg CACRLOverlapPeriod “Weeks”
certutil -setreg CAValidityPeriodUnits 10
certutil -setreg CAValidityPeriod “Years”

Screen Shot 2014-09-08 at 12.36.10 PM Screen Shot 2014-09-08 at 12.36.29 PM

Включим аудит:

certutil -setreg CAAuditFilter 127

Укажем раздел конфигурации в Active Directory:

certutil -setreg CADSConfigDN “CN=Configuration,DC=lab,DC=kagarlickij,DC=com”

Screen Shot 2014-09-08 at 12.38.04 PM

Перезапустим службу и опубликуем новый список отзывов:

restart-service certsvc

certutil -crl

Screen Shot 2014-09-08 at 1.36.42 PM

Перенесем (например через виртуальный флоппи-диск) содержимое папки C:Windowssystem32certsrvcertenroll) с сервера rca на сервер dc и опубликуем сертификат корневого ЦС в AD:

certutil –dspublish –f %CaCertFileName.CRT% RootCA

Screen Shot 2014-09-08 at 1.24.31 PM

Проверим результат c помощью ADSI Edit:

Screen Shot 2014-09-08 at 1.28.11 PM

Screen Shot 2014-09-08 at 1.27.54 PM

Теперь опубликуем список отзывов корневого ЦС:

certutil –dspublish –f %CrlFileName.CRL% RootCA

Screen Shot 2014-09-08 at 1.29.49 PM

Снова проверим результат с помощью ADSI:

Screen Shot 2014-09-08 at 1.32.15 PM

На этом настройку корневого CA можно считать завершенной и переходить к следующим этапам.

=> Оглавление цикла статей о PKI