Компьютерщик на все руки: Просто о сертификатах: часть 2

Следуя этой методике, относительно просто создавать и устанавливать свои собственные сертификаты.

Грег Шилдс

В статье за октябрь 2011, Certificates Made Easy, я рассказал о поэтапном процессе настройки Active Directory Certificate Services (AD CS) и заведении полностью доверяемых серверных сертификатов, в котором использовались возможности IIS. Выпущенные таким образом сертификаты веб-сервера подойдут для множества случаев, среди которых не последнее место занимает аутентификация и шифрование веб-трафика.

Однако иногда требуется нечто иное, чем стандартные сертификаты веб-серверов. В наше время сертификаты могут потребоваться где угодно: в Windows PowerShell, System Center, DirectAccess и растущем списке приложений сторонних производителей. Приходится признать: больше нельзя обходиться без AD CS.

Как бы вы не хотели ее ненавидеть, AD CS быстро занимает место одной из обязательных служб в каждом лесу Active Directory. Как только вы ознакомитесь с основами AD CS, вы осознаете, что в самом деле можете настраивать и развертывать в Windows Server 2012 кое-какие из его «других» сертификатов.

Пример из практики

Как только вы узнаете, как настраивать и создавать какой-либо тип собственных сертификатов, вы сможете генерировать большинство других типов аналогичным образом. Разница только в шаблоне. Чтобы сохранить связь с практикой, я шаг за шагом покажу, какие требования надо выполнить при настройке сертификатов для нововведения Windows Server 2012 — Hyper-V Replica.

Операции по настройке AD CS, описанные в той статье за октябрь 2011, были довольно простыми. Выполнив описанный в ней процесс, вы добавите в свой домен центр сертификации (certificate authority, CA) Enterprise Root. Благодаря интеграции Active Directory с Enterprise Root клиенты, подключенные к домену, также автоматически развернут корневой сертификат CA в своих хранилищах Trusted Root Certification. Им необходим этот корневой сертификат, если они доверяют сертификатам, публикуемым Enterprise Root CA.

При взаимодействии внутри пар, участвующих в репликации, Hyper-V Replica может использовать или Kerberos или аутентификацию, основанную на сертификатах. Если вы хотите шифровать трафик репликации между хостами, необходимо выбрать второй подход. Он также необходим, если вы реплицируете VM между хостами, находящимися в разных доменах. Настройка для каждого из вариантов выполняется в окне настройки Hyper-V Manager (рис. 1).

В этом окне настраиваются параметры репликации Hyper-V Replica.

Рис. 1. В этом окне настраиваются параметры репликации Hyper-V Replica.

Настройка типичного сертификата веб-сервера вообще не представляет сложности благодаря удобным возможностям IIS. К сожалению, сертификаты веб-серверов не поддерживают функциональность, необходимую для аутентификации, основанной на сертификатах, в Hyper-V Replica. Выберите Select Certificate, не имея сертификат, настроенный должным образом, и вы получите сообщение об ошибке (рис. 2).

Hyper-V Replica проверяет, используете ли вы сертификаты, настроенные должным образом

Рис. 2. Hyper-V Replica проверяет, используете ли вы сертификаты, настроенные должным образом

Сертификаты Hyper-V Replica должны поддерживать серверную аутентификацию и клиентскую аутентификацию с использованием закрытого ключа, который можно экспортировать. Кроме того, эти сертификаты имеют специальные требования к полям Subject Name или Subject Alternate Name, о чем писал Правин Вижьярагхаван (Praveen Vijayaraghavan) в Virtualization Blog, поддерживаемом Microsoft. Чтобы установить отношения репликации, сертификат на основном сервере должен удовлетворять следующим требованиям:

  • Enhanced Key Usage (EKU) должно поддерживать клиентскую и серверную аутентификацию.
  • Поле Subject или Subject Alternative Name необходимо заполнить по одному из следующих методов:
    • Задайте для поля Subject имя основного сервера, например, primary1.contoso.com; если основной сервер является частью кластера, сделайте так, чтобы поле Subject содержало полностью определенное доменное имя (Fully Qualified Domain Name, FQDN) Hyper-V Replica Broker (установите этот сертификат на все узлы кластера).
    • Поле Subject может содержать знак подстановки (например, *.department.contoso.com).
    • Для SAN сертификата присвойте DNS Name в поле Subject Alternative Name имя основного сервера, например, primary1.contoso.com; если основной сервер является частью кластера, сделайте так, чтобы поле Subject Alternative Name сертификата содержало FQDN Hyper-V Replica Broker (установите этот сертификат на все узлы кластера).

Чтобы сервер мог принимать трафик репликации, сертификат на сервере репликации должен соответствовать следующим требованиям:

  • EKU должно поддерживать клиентскую и серверную аутентификацию.
  • Поле Subject или Subject Alternative Name необходимо заполнить по одному из следующих методов:
    • Для SAN сертификата присвойте DNS Name в поле Subject Alternative Name имя сервера-реплики, например, replica1.contoso.com; если сервер-реплика — часть кластера, Subject Alternative Name сертификата должно содержать имя сервера-реплики и FQDN Hyper-V Replica Broker (установите этот сертификат на все узлы кластера).
    • Задайте для поля Subject имя сервера-реплики, например, replica1.contoso.com; если сервер-реплика — часть кластера, сделайте так, чтобы имелся сертификат, установленный на все узлы кластера у которого поле Subject содержало бы FQDN Hyper-V Replica Broker.
    • Поле Subject может содержать знак подстановки (например, *.department.contoso.com).

Утверждения Вижьярагхавана полезны, но вы можете запутаться, если не имеете опыта работы с AD CS. Поэтому давайте создадим как можно более простой сертификат, который будет соответствовать требованиям Hyper-V Replica.

Создаем шаблон сертификата

Создание всех сертификатов AD CS начинается с шаблона. Точно так же как шаблон виртуальной машины (VM) является отправной точкой при создании VM, шаблон сертификата определяет правила для любых сертификатов, которые по нему генерируются. Однако в AD CS нет готового шаблона, который удовлетворял бы требованиям Hyper-V Replica. Придется создавать его своими силами. Поэтому для нас становится интересной настройка сертификатов.

Начните с запуска Certification Authority из выпадающего списка Server Manager Tools, затем щелкните Certificate Templates. Вы увидите список выпущенных шаблонов сертификатов (рис. 3). Скоро мы сюда вернемся. Но сначала нужно создать шаблон, который мы хотим выпустить.

В консоли Certification Authority показан список шаблонов сертификатов

Рис. 3. В консоли Certification Authority показан список шаблонов сертификатов

Щелкните правой кнопкой узел Certificate Templates. Затем выберите Manage, чтобы запустить Certificate Templates Console. Как вы уже знаете, всякий сертификат начинается с шаблона. Также вам следует знать, что каждый шаблон начинается с другого шаблона. Эти шаблоны вы и увидите в представлении консоли (рис. 4).

В Certificate Templates Console содержится нужный вам шаблон

Рис. 4. В Certificate Templates Console содержится нужный вам шаблон

Шаблон Computer — хороший базовый шаблон для сертификата Hyper-V Replica, поэтому щелкните Computer правой кнопкой и выберите Duplicate Template. При этом откроется окно свойств нового шаблона. В случае нашего простого шаблона Hyper-V Replica можно проигнорировать большинство вкладок этого окна, но некоторые придется заполнить.

На вкладке General (рис. 5) измените имя шаблона для показа на какое-то имя, которое вы потом вспомните. Если хотите, можете также изменить период действия и период обновления. Щелкните флажок Publish certificate in Active Directory. Это позволит в дальнейшем запрашивать сертификат, используя Active Directory Enrollment Policy вашего CA. Эта возможность будет предоставляться по умолчанию.

На вкладке General можно задать основные параметры

Рис. 5. На вкладке General можно задать основные параметры

Вы должны настроить сертификат Hyper-V Replica так, чтобы можно было экспортировать его закрытый ключ. Это можно сделать с помощью флажка на вкладке Request Handling окна настройки шаблона.

Вы также должны идентифицировать Subject Name сертификата. Для простых сертификатов веб-серверов Subject Name чаще всего содержит FQDN запрашивающего сервера. Вам потребуется, чтобы сертификат Hyper-V Replica работал с различными Subject Name, поэтому на вкладке Subject Name шаблона выберите Supply in the request. Тогда вам придется определять Subject Name или Subject Alternate Name при запросе сертификата.

На вкладке Extensions не нужно ничего настраивать. Сначала вы создали шаблон Hyper-V Replica как копию шаблона. Мы так поступили, поскольку шаблон Computer уже содержит клиентскую и серверную аутентификацию в списке Application Policies (политик приложения). Можно рассматривать эти Application Policies как «функции», поддерживаемые сертификатами, созданными по данному шаблону. Официальным термином для этих функций является Enhanced Key Usage или EKU.

Последняя вкладка — Security. На ней можно назначить разрешения Read and Enroll пользователям и группам, которые будут генерировать сертификаты по этому шаблону. Будьте особенно осторожны с шаблонами, подобными тому, который мы создаем. Этот шаблон требует, чтобы запрашивающая сторона указала  Subject Name сертификата, поэтому злонамеренный пользователь может воспользоваться шаблоном для генерации всевозможных именованных и доверяемых сертификатов.

Щелкните OK, чтобы сохранить эти свойства и закройте консоль Certificate Templates. Теперь для завершения создания шаблона Hyper-V Replica осталось сделать еще одно важное дело, о котором легко забыть. Вернитесь в Certification Authority, щелкните правой кнопкой Certificate Templates и выберите New | Certificate Template to Issue. Выберите наш шаблон Hyper-V Replica и щелкните ОК. Теперь вы готовы к подаче заявки на сертификат (enroll).

Подайте заявку на сертификат

Подача заявок регулируется Active Directory Enrollment Policy вашего CA. Ее создают, просто устанавливая Enterprise Root CA. Сначала перейдите на один из хостов Hyper-V, на котором вы будете активизировать Hyper-V Replica с аутентификацией на основе сертификатов. Затем запустите пустую Microsoft Management Console (MMC) и добавьте оснастку Certificates для учетной записи Computer. После ее загрузки щелкните правой кнопкой Personal | Certificates и выберите All Tasks | Request New Certificate (рис. 6).

Сертификаты вашего локального компьютера

Рис. 6. Сертификаты вашего локального компьютера

При этом запустится мастер Certificate Enrollment. В нем вы можете подать заявку на любой сертификат, распространение которого разрешено Active Directory Enrollment Policy. Щелкните Next на первых двух страницах мастера, чтобы дойти до шаблона Hyper-V Replica. При подаче заявки на этот сертификат требуется указать Subject Name или Subject Alternative Name. Щелкните ссылку More Information, чтобы это сделать.

Откроется окно Certificate Properties (рис. 7). Введите в нем Subject Name или Subject Alternative Name. Самым простым решением будет ввести знак подстановки в поле Alternative Name. Для данного сертификата укажем Alternative Name *.company.pri. Это позволит использовать сертификат для любого хоста Hyper-V Replica с соответствующим FQDN.

В свойствах сертификата можно указывать знаки подстановки

Рис. 7. В свойствах сертификата можно указывать знаки подстановки

Щелкните OK и Enroll, чтобы добавить сертификат в хранилище Personal вашего хоста Hyper-V. Это хранилище — место, в котором Hyper-V Replica будет искать сертификаты, соответствующие ее требованиям. Вам нужно получить в результате статус Succeeded (рис. 8). Можно также щелкнуть кнопку просмотра, чтобы посмотреть установленный сертификат. Щелкните Finish, чтобы завершить работу мастера.

Вы увидите, что сертификат успешно установлен

Рис. 8. Вы увидите, что сертификат успешно установлен

Вот так выглядит процесс настройки и запроса сертификатов. Завершающий этап настройки Hyper-V Replica снова выполняется в Hyper-V Manager. Запустите Hyper-V Settings и щелкните кнопку Select Certificate в Replication Configuration. Если вы все сделали корректно, то увидите свой недавно установленный и настроенный сертификат (рис. 9). Поздравляю! Теперь вы готовы к созданию и запросу любых нужных вам сертификатов.

Можно выбрать ваш сертификат в Hyper-V Settings

Рис. 9. Можно выбрать ваш сертификат в Hyper-V Settings

Болезненно, но полезно

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

Грег Шилдс

Грег Шилдс (Greg Shields)носит звание MVP и является партнером в компании Concentrated Technology. Другие советы и подсказки Грега из рубрики «Компьютерщик на все руки» вы найдете на сайте ConcentratedTech.com.