воскресенье, 12 июля 2009 г.

Выдача сертификатов для инфраструктуры VMware (Часть II)

В первой части статьи был рассмотрен процесс установки Центра Сертификации (ЦС) на базе Microsoft Windows Server 2003. Далее я расскажу о том, как правильно установить OpenSSL и создать с его помощью запрос для нашего ЦС.

Установка OpenSSL и запрос сертификата
В качестве инструмента для генерации закрытого ключа и запроса на выдачу сертификата я буду использовать OpenSSL. Сайт программы – www.openssl.org, там же можно найти исходники под различные ОС. Загрузить установочный пакет можно с сайта www.slproweb.com (последняя на текущий момент версия 0.9.8k). Для работы OpenSSL также понадобится Visual C++ 2008 Redistributables.

Примечание: В новых версиях VMware vCenter, openssl.exe можно найти в папке с установленным vCenter, например: "C:\Program Files\VMware\Infrastructure\Inventory Service\bin".

Не имеет значения, на какой сервер будет установлен OpenSSL, однако, я рекомендую установить его на сервер Virtual Center, либо на сервер ЦС. Сам процесс установки OpenSSL прост до безобразия, единственный момент – выбор директории в которой будут располагать исполняемые файлы – в системной папке Windows, либо в папке /bin. Я выбрал второй вариант.

После установки из командной строки, перейдите в папку с openssl.exe (у меня эта папка по-умолчанию – C:\OpenSSL\bin) и выполните команду для создания файла запроса и генерации приватного ключа:
openssl req -new -nodes -out rui.csr -keyout rui.key

, где параметр -new указывает, что требуется сгенерировать новую пару открытого/закрытого ключа;
ключ -nodes указывает, что шифровать закрытый ключ не требуется;
ключ -out задает имя для файла с запросом на выдачу сертификата;
ключ -keyout указывает файл, в который будет сохранен закрытый ключ.

Запустится мастер, собирающий информацию, которая позднее будет включена в выданный сертификат:
Country Name – код страны из двух букв (например, RU – для России).
State or Province Name – название штата или провинции.
Location Name – информация о местоположении компании (например, название города).
Organization Name – имя компании.
Organization Unit Name – название подразделения компании.
Common Name – имя на которое будет выдан сертификат, укажите здесь DNS имя ESX/ESXi сервера, либо сервера Virtual Center.
Email Address – адрес электронной почты администратора.

OpenSSL создаст в текущей папке два файла: rui.csr, содержащий запрос на выдачу сертификата, и rui.key, содержащий закрытый ключ. На основе файла с запросом вы сможете сгенерировать сертификат. Для этого выполните следующие шаги:

  1. Откройте браузер и перейдите на страницу выдачи сертификатов (http://<имя_сервера_ЦС>/certsrv).
  2. На главной странице Welcome выберите Request a certificate.
  3. На следующей странице выберите advanced certificate request.
  4. На странице Advanced Certificate Request выберите вариант, начинающий со слов Submit a certificate request by using a base-64-encoded CMC...
  5. На странице Submit a Certificate Request or Renewal Request под Saved Request нажмите Browse for a file to insert и укажите файл запроса rui.csr, либо вставьте весь текст из файла прямо в поле. В списке под Certificate Template выберите Web Server. Нажмите Submit, чтобы подтвердить запрос на сертификат.
  6. В окне Certificate Issued, вам будет предложено скачать подписанный сертификат Download certificate. Укажите тип Base 64 encoded, назовите файл rui.crt (обратите внимание на расширение) и сохраните его в той же папке, что и rui.key.
Если вы выписывали сертификат для ESX/ESXi, то теперь осталось скопировать файлы непосредственно на сервер.

Для Virtual Center сертификаты генерируются аналогичным образом. Единственное отличие заключается в том, что после получения .crt файла необходимо сделать еще один шаг - привязать закрытый ключ к выданому сертификату. Сделать это можно следующей командой OpenSSL:
openssl pkcs12 -export -in rui.crt -inkey rui.key -name rui -out rui.pfx

В качестве пароля для защиты сертификата используйте: "testpassword". Если вы попытаетесь указать какой-либо другой пароль или не введете его вовсе, то плагин Health Monitor не будет корретно работать.

В результате вы получите файл сертификата rui.pfx с закрытым ключом.

Замена сертификата
Для замены существующих сертификатов выполните следующие шаги:

  1. Выключите виртуальные машины на всех серверах ESX/ESXi.
  2. Отсоедините (Disconnect) все серверы от Virtual Center.
  3. Для серверов ESX/ESXi скопируйте файлы rui.key и rui.crt в папку /etc/vmware/ssl.
  4. Из консоли ESX/ESXi выполните:
    services mgmt-vmware restrart
    , либо просто перезагрузите серверы, чтобы удостовериться, что используются новые сертификаты.
  5. Для vCenter скопируйте файлы rui.key, rui.crt и rui.pfx в папку %ALLUSERSPROFILE%\Application Data\VMware\VMware VirtualCenter\SSL, заменив существующие. Также, убедитесь, что доступ к папке и содержимому имеют только члены группы Администраторы и учетная запись System.
  6. Перезапустите службу Virtual Center с помощью команды:
    net stop “VMware VirtualCenter Server” && net start “VMware VirtualCenter Server”
    , либо из оснастки Службы (Services).
  7. Запустите Virtual Infrastructure Client и присоедините (Connect) обратно все серверы ESX/ESXi к Virtual Center.
  8. Запустите необходимые виртуальные машины.
  9. Не забудьте сделать резервные копии сертификатов, если это необходимо, и удалить все ненужные файлы с запросами и сертификатами из папки OpenSSL и других временных папок.
На этом работы по замене сертификатов можно считать законченными.

Дополнительные возможности
Добавление нескольких действующих имен в один сертификат
Данная функция может быть полезной, если вы планируете выдать один сертификат сразу для нескольких серверов ESX/ESXi и серверов Virtual Center, либо хотите обращаться к серверам по нескольким именам (например: server.company.local, server.company.com, server и т.п.). Сделать это можно, включив в ЦС поддержку Subject Alternative Name.



Для этого выполните в командной строке на сервере, где установлен ЦС:
certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
После чего перезапустите службу:
net stop certsvc && net start certsvc

Теперь при запросе сертификата через Web-интерфейс вы можете указать в поле Attributes дополнительные dns имена в формате:
san:dns=dns.name[&dns=dns.name]
Смена сертификата для VMware Server 2.0
VMware Server 2.0 хранит свои сертификаты в папках C:\Program Files\VMware\VMware Server\ssl и %ALLUSERSPROFILE%\Application Data\VMware\VMware Server\SSL, поэтому для их замены просто скопируйте новый файлы rui.crt и файлы rui.key в обе директории.

На этом вторая часть завершена. Описание генерации и смены сертификата для VMware View Manager 3.1 в части III.

При подготовке статьи использовались следующие материалы:

  1. How to add a Subject Alternative Name to a secure LDAP certificate
  2. Replacing vCenter Server Certificates

Комментариев нет:

Отправить комментарий