Приступим к настройка корневого центра сертификации 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
Затем пройдем по шагам и определим базовые настройки:
Длинна ключа 2048 бит, алгоритм SHA1 – это далеко не максимум на сегодняшний день, но важнее соблюсти совместимость.
Ознакомимся с дефолтными настройками путей к AIA и CDP для нашего корневого CA:
Get-CAAuthorityInformationAccess | fl
Get-CACRLDistributionPoint | fl
В “реестровом” представлении эти параметры выглядят так:
Дефолтные расположения нам не походят, поэтому укажем собственные, используя 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>
Проверим результат:
Укажем параметры списка отзывов (аналогично тому, что было указано в 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”
Включим аудит:
certutil -setreg CAAuditFilter 127
Укажем раздел конфигурации в Active Directory:
certutil -setreg CADSConfigDN “CN=Configuration,DC=lab,DC=kagarlickij,DC=com”
Перезапустим службу и опубликуем новый список отзывов:
restart-service certsvc
certutil -crl
Перенесем (например через виртуальный флоппи-диск) содержимое папки C:Windowssystem32certsrvcertenroll) с сервера rca на сервер dc и опубликуем сертификат корневого ЦС в AD:
certutil –dspublish –f %CaCertFileName.CRT% RootCA
Проверим результат c помощью ADSI Edit:
Теперь опубликуем список отзывов корневого ЦС:
certutil –dspublish –f %CrlFileName.CRL% RootCA
Снова проверим результат с помощью ADSI:
На этом настройку корневого CA можно считать завершенной и переходить к следующим этапам.