Update 03.04.2010: добавлен OID для PolicyStatementExtension.
Update 26.06.2011: добавлена публикация корневого сертификата в Active Directory.
Update 04.08.2011: добавлено примечание по AlternateSignatureAlgorithm в CAPolicy.inf. Обязательно прочтите.
Ссылки на другие материалы из этой серии:
В предыдущей части мы подготовили, установили и настроили наш первый корневой центр сертификации. Теперь настала пора подготовить, установить и настроить издающий центр сертификации, называемый Issuing CA. Так же, Issuing CA будет совмещать роль Policy CA.
Несколько слов о роли Policy CA. Технически Policy CA выражается расширением Certificate Policies в сертификате CA. Данное расширение содержит ссылку на страницу загрузки CPS (Certificate Practice Statement). CPS — юридический документ, регламентирующий работу центров сертификации компании, включающий в себя наиболее важные части:
В реальном мире CPS является очень важным документом, регламентирующим всю работу PKI. Данный документ должен быть доступен для каждого потребителя сертификатов вашей PKI и он является поводом для доверия или недоверия к вашей PKI. Несоблюдение правил описанных в CPS со стороны владельца PKI фактически означает аннулирование доверия вашей PKI. Так же в реальном мире, вам придётся пройти аудит в случае кросс-сертификации с другой иерархией PKI.
Примечание: кросс-сертификация (cross-certification) является процедурой и механизмом доверия одной компанией PKI другой компании. Вопросы кросс-сертификации выходят за рамки рассматриваемого материала.
Каждой уважающей себя компании использующей PKI необходимо иметь такой документ. Для облегчения процесса написания CPS вы можете воспользоваться рекомендациями RFC 3647: http://tools.ietf.org/html/rfc3647, а так же посмотреть аналогичные документы коммерческих CA (например: https://www.verisign.com/repository/cps/index.html) и переложить их под свои условия.
В данном посте я не буду обсуждать вопросы CPS, а только покажу как информация о CPS прикрепляется к сертификату CA. Однако, хочу заметить, что для использования CPS, вы ему должны назначить свой OID, который принадлежит вашей компании. Более подробно об OID'ах здесь: Что в OID'е тебе моём?
Предполагается, что компьютер с именем IssuingCA установлен, обновлён и сконфигурированы параметры безопасности. Данный компьютер является членом домена Active Directory с именем Adatum.com. Данный компьютер будет выполнять роль издающего центра сертификации (Issuing Certification Authority) с совмещением роли Policy CA. Данный центр сертификации будет постоянно подключен к сети и обслуживать заявки на сертификаты от непосредственных потребителей.
Вводные данные для издающего сервера CA:
Примечание: все операции выполняемые на сервере, который будет держать роль Issuing CA необходимо выполнять с правами Enterprise Admins.
Перед установкой роли AD CS, необходимо создать конфигурационный файл, который будет использоваться установщиком роли. Для этого в папке %systemroot% необходимо создать файл с именем CAPolicy.inf и внести в него следующий текст:
[Version] Signature = "$Windows NT$" [PolicyStatementExtension] Policies = {Adatum}CPS [{Adatum}CPS] URL = http://www.{adatum.com}/pki/policies.html OID = 2.5.29.32.0 [certsrv_server] ; Устанавливаем длину ключа, которая будет использоваться ; *только* при обновлении сертификата CA RenewalKeyLength = 2048 ; Устанавливаем срок действия обновлённого сертификата. ; Будет использоваться *только* при обновлении сертификата CA RenewalValidityPeriodUnits = 10 ; Устанавливаем единицу измерения для предыдущего параметра RenewalValidityPeriod = years ; Устанавливаем периодичность публикации CRL в 5 дней CRLPeriodUnits = 5 CRLPeriod = days ; Устанавливаем срок продления CRL. Фактический срок действия CRL для клиентов увеличивается на ; на заданный период, который в нашем случае равен 2 неделям. Это означает, что сервер CA будет ; публиковать новый CRL каждые 90 дней, а срок действия этого CRL будет 104 дня. Это даст ; администраторам возможность успеть забрать новый CRL с сервера и распространить его в нужные локации CRLOverlapUnits = 1 CRLOverlapPeriod = days ; Устанавливаем периодичность публикации CRL в 12 часов CRLDeltaPeriodUnits = 12 CRLDeltaPeriod = hours :: Включаем AlternateSignatureAlgorithm. Не включайте его если у вас есть клиенты под управлением:: Windows 2000, Windows XP, Windows Server 2003, поскольку указанные системы не поддерживают альтернативные подписи. :: AlternateSignatureAlgorithm = 1
[Version] Signature = "$Windows NT$"
[PolicyStatementExtension] Policies = {Adatum}CPS
[{Adatum}CPS] URL = http://www.{adatum.com}/pki/policies.html OID = 2.5.29.32.0
[certsrv_server] ; Устанавливаем длину ключа, которая будет использоваться ; *только* при обновлении сертификата CA RenewalKeyLength = 2048 ; Устанавливаем срок действия обновлённого сертификата. ; Будет использоваться *только* при обновлении сертификата CA RenewalValidityPeriodUnits = 10 ; Устанавливаем единицу измерения для предыдущего параметра RenewalValidityPeriod = years ; Устанавливаем периодичность публикации CRL в 5 дней CRLPeriodUnits = 5 CRLPeriod = days ; Устанавливаем срок продления CRL. Фактический срок действия CRL для клиентов увеличивается на ; на заданный период, который в нашем случае равен 2 неделям. Это означает, что сервер CA будет ; публиковать новый CRL каждые 90 дней, а срок действия этого CRL будет 104 дня. Это даст ; администраторам возможность успеть забрать новый CRL с сервера и распространить его в нужные локации CRLOverlapUnits = 1 CRLOverlapPeriod = days ; Устанавливаем периодичность публикации CRL в 12 часов CRLDeltaPeriodUnits = 12 CRLDeltaPeriod = hours
:: Включаем AlternateSignatureAlgorithm. Не включайте его если у вас есть клиенты под управлением:: Windows 2000, Windows XP, Windows Server 2003, поскольку указанные системы не поддерживают альтернативные подписи. :: AlternateSignatureAlgorithm = 1
Примечание: конфигурационный файл должен обязательно называться CAPolicy.inf и обязательно храниться в %systemroot%. Другие имена и локации файла не допускаются, иначе он попросту будет проигнорирован. Данный файл доступен для скачивания по ссылке в конце поста.
Когда конфигурационный сохранён в нужном месте, можно приступать к установке роли CA. Для этого запустите Server Manager, перейдите на секцию Roles и нажмите Add Roles. После этого запустится мастер установки ролей.
Примечание: если у вас используется HSM (Hardware Security Module), его драйвер должен быть установлен заранее. И на шаге 8 в списке криптопровайдеров необходимо выбрать CSP производителя вашего HSM.
Примечание: в ходе установки роли AD CS на шаге 9 вместо Adatum укажите название вашей компании. Места, в которых необходимо прописать свои данные заключены в фигурные скобки — {}.
На этапе установки Issuing CA у нас сгенерировался файл запроса, который нужно отправить на наш корневой центр сертификации, чтобы тот его подписал и выдал нам рабочий сертификат. Поэтому скопируйте файл запроса (должен быть сохранён по пути указанному в пункте 10) на съёмный носитель и перенесите его на корневой CA. На корневом CA выполните следующие шаги:
Вернитесь на Issuing CA для завершения инсталляции.
Теперь можно установить сертификат на сервер CA. Для этого запустите оснастку Certification Authority из папки Administrative Tools. В оснастке выделите имя центра сертификации, нажмите Action –> All tasks –> Install CA certificate. В диалоговом окне перейдите на папку C:\CertData и укажите файл SubCA1.cer и нажмите Open. Если импорт прошёл без ошибок, сертификат CA был установлен успешно. Но запускать службу Certificate Services ещё рано.
Нам осталось написать и выполнить послеустановочный скрипт, который сконфигурирует сервер CA и подготовит AD к успешной работе. Но об этом в следующий раз.
1 TXT file 852 B PICA_CAPolicy.inf.txt
(для скачивания файла нажмите на кнопку правой кнопкой и выберите Save target as…)
Remember Me