Архив

Archive for Июль 2016

Настройка инфраструктуры открытых ключей PKI 4

Настройка выдающего УЦ

Основные параметры УЦ:

  • Имя УЦ: IssuingCA
  • Алгоритм хэширования: SHA 256
  • Срок действия сертификата УЦ: 5 лет
  • Срок действия выпускаемых сертификатов: 1-4 лет
  • Длина ключа: 2048
  • Время жизни списков отзывов: 5 дней
  • Операционная система Windows 2012 R2

Инсталляция роли

Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools

Add-WindowsFeature Adcs-web-enrollment
Install-adcswebenrollment

Описание файла настроек УЦ

[Version]
Signature = «$Windows NT$»
OID = 2.5.29.32.0
[certsrv_server]
RenewalKeyLength = 2048
RenewalValidityPeriodUnits = 5
RenewalValidityPeriod = years
CRLPeriodUnits = 5
CRLPeriod = days
CRLOverlapUnits = 1
CRLOverlapPeriod = days
CRLDeltaPeriodUnits = 12
CRLDeltaPeriod = hours
AlternateSignatureAlgorithm = 0
LoadDefaultTemplates=0

Я хотел бы обратить внимание на этот параметр LoadDefaultTemplates=0 (удаляет по умолчанию шаблоны сертификатов из раздела Certificate Templates), раньше я не придавал должного значения этому параметру, так как рзаворачивал УЦ там где их не было впринципе или в тестовых средах. В этом проекте я столнулся с тем, что как только я развернул выдающий УЦ (без этого параметра) УЦ в течении часа автоматически выдал 400 сертификатов рабочим станциям и серверам. Честно признаться я не смог разобраться по какой причине. Политик Autoenrollment я найти не смог, какие сервисы запросили сертификаты по стандартным логам на рабочей станции тоже не смог определить. После этого я всегда включаю данный параметр, если разворачиваю УЦ в промышленной среде.

Инсталляция выдающего УЦ

Install-AdcsCertificationAuthority -CAType EnterpriseSubordinateCA -CACommonName «IssuingCA» -KeyLength 2048 -HashAlgorithm SHA256 -CryptoProviderName «RSA#Microsoft Software Key Storage Provider»

После того, как команда отработает создается файл запроса

pki4

Копируем файл ENT-CA.viktorp.club_IssuingCA.req на корневой УЦ.

На корневом УЦ выпустить сертификат

1 В оснастке Certification Authority из папки Administrative Tools.
2 Нажмите правой клавишей на названии сервера CA, далее All Tasks –> Submit new request.
3 В диалоговом окне укажите файл запроса, который был сгенерирован на этапе установки «IssuingCA», теперь запрос находится в очереди ожидания.
4 Перейдите в раздел Pending Requests, выделите нужный запрос, нажмите правой кнопкой и нажмите Issue.
5 Перейдите в раздел Issued certificates, откройте сертификат, перейдите на вкладку Details и там нажмите кнопку Copy to File и сохраните файл в папку C:\.

* После этого шага, впринципе корневой УЦ больше не понадобиться его можно выключить до момента обновления CRL или выпуска еще одного сертификата.

6 На выдающем сервере УЦ перейдите в раздел Certification Authority.

7 Нажмите правой клавишей на названии сервера CA, далее All Tasks –> Install CA Certificate и укажите скопированный сертификат.

8 Запустите CA.

9 Проверьте параметры сертификата.

10 настройка параметров CRL и AIA и дублирование параметров в файле CAPolicy

$crllist = Get-CACrlDistributionPoint; foreach ($crl in $crllist) {Remove-CACrlDistributionPoint $crl.uri -Force};
Add-CACRLDistributionPoint -Uri C:\Windows\System32\CertSrv\CertEnroll\%3%8%9.crl -PublishToServer -PublishDeltaToServer -Force
Add-CACRLDistributionPoint -Uri http://crl.viktorp.club/crld/%3%8%9.crl -AddToCertificateCDP -AddToFreshestCrl -Force
Add-CACRLDistributionPoint -Uri file://\\crl.viktorp.club\pki\CRLD\%3%8%9.crl -PublishToServer -PublishDeltaToServer -Force
Add-CACRLDistributionPoint -Uri «ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10» -AddToCrlCdp -AddToCertificateCdp
$aialist = Get-CAAuthorityInformationAccess; foreach ($aia in $aialist) {Remove-CAAuthorityInformationAccess $aia.uri -Force};
Add-CAAuthorityInformationAccess -AddToCertificateAia http://crl.viktorp.club/crld/%3%4.crt –Force
Add-CAAuthorityInformationAccess –AddToCertificateAia “ldap:///CN=%7,CN=AIA,CN=Public Key Services,CN=Services,%6%11”

certutil -setreg CA\ValidityPeriodUnits 4
certutil -setreg CA\ValidityPeriod «Years»

Параметр ValidityPeriodUnits 4 указывает, что максимальное время на которое могут быть выписаны сертификаты, насколько я помню по умолчанию 3 года.

Дублируем, то что было указано в файле CAPolicy

certutil -setreg CA\CRLPeriodUnits 5
certutil -setreg CA\CRLPeriod «Days»
certutil -setreg CA\CRLDeltaPeriodUnits 12
certutil -setreg CA\CRLDeltaPeriod «Hours»
certutil -setreg CA\CRLOverlapPeriod «Days»
certutil -setreg CA\CRLOverlapUnits 1

 Выполнить публикацию CRL в точки публикации, используя команду

certutil -crl

Осталось опубликовать сертификат, для этого необходимо:

  1. Указать контекст конфигураци для сервера IssuingCA (корневой домен)

certutil -setreg CA\DSConfig «CN=Configuration,DC=viktorp,DC=club»

2. Опубликовать сертификат IssuingCA в AD

certutil -dspublish -f C:\{название_сертификата}.crt Subca
certutil -dspublish -f C:\{название_сертификата}.crt NTAuthCA

net stop certsvc && net start certsvc

 

Рубрики:CA, PKI

Настройка инфраструктуры открытых ключей PKI 3

Настройка точек публикации CRL и цепочки сертификатов AIA

Идентичные настройки необходимо выполнить для двух серверах WEB1 и WEB2:

1. Установить IIS в стандартной комплектации

2. Установить DFS и NLB роли на серверы:

Install-WindowsFeature -Name FS-DFS-Namespace, FS-DFS-Replication, NLB -IncludeManagementTools

3. Настроить NLB

Настройку NLB описывать не буду, она очень простая. Есть нюансы при выборе Unicast и Multicast режимов работы кластера. Некоторые ссылки указаны ниже:

https://technet.microsoft.com/en-us/library/cc782694(v=ws.10).aspx

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006558

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1556

У меня был настроен Unicast с одним адаптером. Правило балансировки только для одного порта TCP 80.

В DNS вручную создана запись A (crl.viktorp.club= VIP NLB), которая указывает на общий виртуальный IP-адрес кластера NLB.

4 Настройка DFS на двух серверах:

На серверах WEB1 и WEB2 создать папку C:\CRLD, сделать ее общедоступной (Shared) и назначить локальным администратором полные права NTFS на папку.

В оснастке DFS Management создать Namespace с названием PKI и добавить два Namespace сервера.

2

Добавить новую папку с названием «CRLD» в которой добавляются два сервера WEB1 и WEB2 с локально, расположенными папками CRLD.

3

После создания папки CRLD автоматически запускается помощник настройки репликации в ходе которого необходимо указать два сервера репликации WEB1 и WEB2.

4

После этого можно создать тестовый файл в \\viktorp.club/pki/crld который будет доступен в папках CRLD на серверах WEB1 и WEB2.

6. Выполнить WEB публикацию содержимого папки CRLD с помощью IIS

Для настройки IIS необходимо создать сервисную учетную запись Domain User — svc-iisuser (не забываем отключать устаревание паролей для сервисных учетных записей).

На каждом из серверов WEB1 или WEB2 создать виртуальную дирректорию CRLD

5

В разделе Connect as.. указать, созданную учетную запись.

Включить на двух серверах Directory Browsing для CRLD и Double Escaping

6

На этом настройка web-серверов завершена, протестируйте доступность общей папки, репликацию файлов между серверами, их доступность через браузер. Не забывайте выполнить настройки проксирующих серверов для того, чтобы не было проблем с доступом до файлов ИОК.

Рубрики:CA, PKI

Настройка инфраструктуры открытых ключей PKI 2

Настройка автономного корневого УЦ

 

Основные параметры УЦ:

      • Имя УЦ: RootCA
      • Алгоритм хэширования: SHA 256
      • Срок действия сертификата УЦ: 10 лет
      • Срок действия выпускаемых сертификатов: 5 лет
      • Длина ключа: 2048
      • Время жизни списков отзывов: 1 год
      • Операционная система Windows 2012 R2

Инсталляция роли

Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools

Описание файла настроек УЦ

Файл CApolicy.inf следует поместить в C:\Windows до начала настройки роли Active Directory Certificate Services.

Содержание файла CApolicy.inf

[Version]
Signature=”$Windows NT$”
[Certsrv_Server]
RenewalKeyLength=2048
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=10
CRLPeriod=Years

CRLPeriodUnits=1
CRLDeltaPeriod=Days
CRLDeltaPeriodUnits=0
LoadDefaultTemplates=0
AlternateSignatureAlgorithm=0

Где:

CRLPeriodUnits — Время жизни CRL (период обновления CRL)

CRLDeltaPeriodUnits — Дельты CRL. в корневых УЦ не публикуются.

RenewalValidityPeriodUnits — Время жизни сертификата УЦ

Хочу отдельно выделить параметр «AlternateSignatureAlgorithm=0» в случае если его значение «1» тогда в качестве алгоритма цифровой подписи используется RSASSA-PSS. Проблема заключается в том, что данный алгоритм не поддерживается некоторыми аппаратными устройствами. В случае, если вы уже установили УЦ с использованием RSASSA-PSS, для того, чтобы переделать в SHA1 или SHA256 необходимо:

1 На корневом сервере выполнить команду:

certutil -setreg csp\alternatesignaturealgorithm 0
net stop certsvc && net start certsvc

2 Перевыписать сертификат корневого УЦ;

3 Повторить последовательность действий на всех подчиненных УЦ

Инсталляция УЦ

Install-AdcsCertificationAuthority -CAType StandaloneRootCA -KeyLength 2048 -HashAlgorithmName SHA256 -CACommonName «RootCA» -CryptoProviderName «RSA#Microsoft Software Key Storage Provider» -ValidityPeriod Years -ValidityPeriodUnits 10

Настройка параметров УЦ

#Период перекрытия списка отзывов. Время в течении которого новый CRL опубликован но старый еще валидный.

Certutil -setreg CA\CRLOverlapPeriodUnits 12

Certutil -setreg CA\CRLOverlapPeriod «Hours»

#Время в годах валидности выпускаемых сертификатов корневым УЦ

Certutil -setreg CA\ValidityPeriodUnits 5

Certutil -setreg CA\ValidityPeriod «Years»

#Настройка CRL публикаций

$crllist = Get-CACrlDistributionPoint; foreach ($crl in $crllist) {Remove-CACrlDistributionPoint $crl.uri -Force}; Add-CACRLDistributionPoint -Uri C:\Windows\System32\CertSrv\CertEnroll\VIKTORP-ROOTCA%8.crl -PublishToServer -Force

Add-CACRLDistributionPoint -Uri http://crl.viktorp.club/crld/VIKTORP-ROOTCA%8.crl -AddToCertificateCDP -Force

#Настройка AIA публикаций

$aialist = Get-CAAuthorityInformationAccess; foreach ($aia in $aialist) {Remove-CAAuthorityInformationAccess $aia.uri -Force};

Add-CAAuthorityInformationAccess -Uri http://crl.viktorp.club/crld/VIKTORP-ROOTCA%4.crt -AddToCertificateAia -Force

#Включение аудита событий УЦ

Certutil -setreg CA\AuditFilter 127

restart-service certsvc

#Публикация новых CRL

certutil -crl

#Переименование файлов CRL и CRT и публикация в Active Directory

Необходимо вручную переименовать файлы CRT и CRL и скопировать их на выдающий УЦ.

pki3

 

Процедуру публикации в Active Directory необходимо выполнять с правами Domain Admins и Enterprise Admins на сервере входящим в состав домена, например ENT-CA.

certutil –dspublish –f VIKTORP-ROOTCA.crt RootCA #Публикация к AIA контейнере

certutil –addstore –f root VIKTORP-ROOTCA.crt #Публикация в Certification Authorities Container контейнере

certutil –addstore –f root VIKTORP-ROOTCA.crl

 Справочник переменных

Variable Extensions tab name Description
%1 <ServerDNSName> The DNS name for the CA computer. If connected to a DNS domain, it is the fully qualified domain name; otherwise, it is the hostname of the computer.
%2 <ServerShortName> The NetBIOS name of the CA server
%3 <CaName> The name of the CA
%4 <CertificateName> This allows each additional revision of the certificate to have a unique suffix.
%4 None Not used
%6 <ConfigurationContainer> The location of the configuration container in Active Directory Domain Services (AD DS)
%7 <CATruncatedName> The name of the CA truncated to 32 characters with a hash at the end
%8 <CRLNameSuffix> This inserts a suffix on the file name when publishing a CRL to a file or URL location.
%9 <DeltaCRLAllowed> When a delta CRL is published, this replaces the CRLNameSuffix variable with a separate suffix to distinguish the delta CRL from the CRL.
%10 <CDPObjectClass> The object class identifier for CRL distribution points, which is used when publishing to an LDAP URL.
%11 <CAObjectClass> The object class identifier for a CA, which is used when publishing to an LDAP URL.
Рубрики:CA, PKI

Настройка инфраструктуры открытых ключей PKI 1

Краткое описание инфраструктуры открытых ключей

Настройка инфраструктуры открытых ключей 1 | Введение

Настройка инфраструктуры открытых ключей 2 | Корневой УЦ

Настройка инфраструктуры открытых ключей 3 | Точки публикации CRL и AIA

Настройка инфраструктуры открытых ключей 4 | Выдающий УЦ

  Ниже описан вариант настройки инфраструктуры открытых ключей (далее ИОК), который я использовал в промышленной среде в одной организации. В данных заметках отсутсвует описание процесса выбора архитектуры, только последовательность действий внедрения ИОК.

Задачей было внедрение ИОК на базе Windows 2012 R2 для возможностей аутентификации пользователей на веб-ресурсах и настройки SSL  для веб-сервисов.  Пользовательские сертификаты должны были назначаться пользователям в автоматическом режиме или от имени администратора ИОК. Для точек распространения CRL и AIA должна быть обеспечена отказоустойчивость. Отказоустойчивость серверов УЦ не обеспечивалась.

ИОК состоит из:

  1. ROOT — Автономный корневой Удостоверяющий Центр (далее УЦ). Предназначен для выдачи сертификатов дочерним серверам УЦ.
  2. ENT-PKI — выдающий УЦ. Используется для выдачи сертификатов конечным потребителям ИОК.
  3. WEB1 — Веб-сервер. Предназначен для публикации списков отзывов и сертификатов УЦ (CRL и AIA точки распространения)
  4. WEB2 — Веб-сервер. Выполняет те же функции, что и предыдщий сервер.

Безопасность хранения файлов сертификатов обеспечивалась за счет создания регулярных резервных копий и использования DFS. Безопасность веб-публикации обеспечивалась за счет создания двух узлового кластера NLB.

pki1

 

Рубрики:PKI