Сертификаты безопасности и SSL в VMware ESXi и vCenter Server
ESXi и vCenter Server поддерживают стандартные X.509 v3 сертификаты для криптования соединения через SSL (Secure Socet Layer). Проверка сертификатов включена по умолчанию и SSL сертификаты используются для шифрования сетевого трафика. Тем не менее, при использовании ESXi и vCenter Server сертификаты автоматически генерируются при установке и хранятся на серверной системе. Эти сертификаты уникальны и уже позволяют получить доступ к серверу через SSL, но они непроверяемы и не подписаны “доверенным центром сертификации”. Таким образом, сертификаты по умолчанию являются уязвимыми.
Для того, чтобы получить наибольшую безопасность при использовании SSL-соединения (особенно, если вы собираетесь использовать соединение из-вне) необходимо сгенерировать новые подписанные сертификаты. Если сертификаты не установлены, связь между сервером и vCenter vSphere клиентами зашифрована с использованием самозаверенного сертификата, которого недостаточно для безопасной аутентификации в производственной среде.
Сертификат состоит из двух файлов:
rui.crt — непосредственно сам сертификат,
rui.key — “скрытый” ключ.
Дефолтное расположение сертификатов следующее:
Использование сертификатов в vCenter Server.
В vCenter Server проверка сертификатов включена по умолчанию. Для того, чтобы убедиться подключитесь к vCenter Server с помощью vSphere Client и выберите:
Затем проверьте SSL Settings на левой панели и убедитесь, что выбран пункт Check host certificates.
Создание нового сертификата для ESXi.
Если вы изменили имя хоста ESXi, удалили сертификаты, или возникли какие-то другие обстоятельства, при которых необходимо сгенировать новые выполните следующие действия:
1. Подключитесь к вашему ESXi хосту через SSH и получите root-привилегии.
2. Создайте резервную копию существующих сертификатов командами:
3. Для генерации новых сертификатов:
По завершению вы получите предупреждение:
Предупреждение можно проигнорировать — новые сертификаты созданы. Выполнив команду:
можно сравнить время создания файлов сертификатов.
4. Восстанавливаем атрибуты для созданных файлов сертификатов:
5. Перезагружаем хост ESXi.
Создание подписанных сертификатов для ESXi.
В качестве центра сертификации (CA) можно использовать OpenSSL. И хотя шаги для создания сертификатов в различных операционных системах могут несколько отличаться, общий принцип един, поскольку vSphere использует X.509 v3 SSL сертификаты.
ВНИМАНИЕ! Перед началом убедитесь, что вы используете OpenSSL версии 0.9.8, иначе работа SSL не гарантируется.
Для упрощения установки OpenSSL в ОС Windows можно воспользоваться Shining Light Installer’ом, в то время как во FreeBSD и в большинстве Linux-дистрибутивов этот пакет уже установлен по умолчанию. В Windows так же потребуется установить Microsoft Visual C++ 2008 Redistributable Package (x86).
Перед тем, как приступить к конфигурированию OpenSSL, создайте бэкап openssl.cfg:
Во FreeBSD и Debian:
В других Linux-дистрибутивах расположение файла может отличаться.
Теперь непосредственно сам конфиг, который нужно привести к следующему виду:
Жирным выделенные поля для заполнения. Если вы не укажете эти параметры можете ввести их при создании сертификата. Следующая команда создаст rui.csr:
Теперь конвертируем ключ в RSA-формат следующей командой:
После того, как создан “запрос” должен быть сгенерирован непосредственно сам “ответ”, то есть ответная составляющая сертификата.
Для коммерческих центров сертифицирования:
Созданный запрос необходимо направить в центр сертифицирования (CA) и полученный ответный ключ установить на сервер vCenter Server.
Для центра сертифицирования Microsoft:
Обратите внимание, что для Windows Server 2003 CA требуется версия Enterprise, так как другие редакции не имеют шаблонов для экспорта SSL-сертификатов.
1. Откройте в веб-интерфейс центра сертифицирования Microsoft ( Microsoft CA certificate authority web interface). По умолчанию: http://servername/CertSrv/
2. Перейдите: Request a certificate > advanced certificate request.
3. Нажмите Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, или submit a renewal request by using a base-64-encoded PKCS #7 file.
4. Используя текстовый редактор скопируйте контент:
Сохраните созданный сертификат rui.crt и перейдите к этапу его установки.
Для самоподписанных (self-signed) сертификатов:
Следующая команда создаст сертификат с помощью OpenSSL:
Установка подписанных сертификатов для хоста ESXi.
По завершению хост будет готов для присоединения к кластеру, однако потребуется выполнить следующие шаги для каждого из хостов, где требовалось сменить сертификат:
vCenter 7 — устанавливаем свой сертификат
Сегодня создадим и установим свой корпоративный сертификат на vCenter 7. Процесс пойдёт в несколько этапов, а именно:
Подготовительные работы
Сделаем шаблон vSphere 7 в центре сертификации. Это задача вынесена в отдельную статью. Здесь рассказывается как сделать шаблон в центре сертификации и настроить срок действия на 5 лет.
Настроим поддержку нескольких алиасов и IP адреса при создании сертификата. Эта задача вынесена в отдельную статью.
Подготовим цепочку корневых сертификатов. Открываем центр сертификации.
Скачиваем цепочку сертификатов из центра сертификации. Воспользуемся ссылкой Download a CA certificate, certificate chain, or CRL.
Устанавливаем галку на Base 64. Скачиваем цепочку в формате P7B — Download CA certificate chain.
Конвертируем P7B в PEM:
Получаем цепочку в формате PEM.
Лишние строки из полученного файла можно удалить вручную.
Сгенерировать сертификат vCenter 7
Генерировать будем через shell. Включаем Bash Shell на vCenter 7.
Заходим на vCenter по SSH под пользователем administrator@vsphere.local. Переходим в shell:
Переключаемся в sudo:
Вот мы и под рутом. Выполняем команду:
*** Welcome to the vSphere 6.7 Certificate Manager ***
Если вы пытаетесь заменить «протухший сертификат», то сначала воспользуйтесь пунктом 8 (Reset all Certificates). Скрипт сгенерирует для всех сервисов самоподписанные сертификаты. Перезагрузите vCenter. После этого продолжите по инструкции ниже.
Выбираем первый пункт.
Replace Machine SSL certificate with Custom Certificate
Вводим «1». Логинимся под administrator@vsphere.local.
Для начала генерируем CSR (Certificate Signing Request), нажимаем «1».
И тут нас начинают спрашивать:
Отвечаем, получаем в итоге два файла:
Для выхода нажимаем «2».
Получаем содержимое vmca_issued_csr.csr:
Копируем содержимое CSR в буфер.
Открываем центр сертификации.
Request a certificate — запрашиваем сертификат.
Advanced certificate request. Заполняем поля.
Естественно, свои IP и DNS адреса вписываем.
Скачиваем Base 64 encoded. Download certificate.
Снова идём в shell.
Создаём файл vmca_issued_csr.cer:
Вставляем внутрь содержимое полученного сертификата, сохраняем.
Создаём файл E-CA.cer:
Вставляем внутрь содержимое корневого сертификата или цепочки (помним что переводили её в формат PEM), сохраняем.
Выбираем первый пункт. Replace Machine SSL certificate with Custom Certificate. Вводим «1». Логинимся под administrator@vsphere.local. Потом выбираем второй пункт. Import custom certificate(s) and key(s) to replace existing Machine SSL certificate.
Нас спрашивают: «Please provide valid custom certificate for Machine SSL», указываем
/tmp/vmca_issued_csr.cer.
Нас спрашивают: «Please provide valid custom key for Machine SSL», указываем
/tmp/vmca_issued_key.key.
Нас спрашивают: «Please provide the signing certificate of the Machine SSL certificate», указываем
/tmp/E-CA.cer.
Полетело обновление сертификата, можно идти пить кофе.
All tasks completed successfully
Настройка SSL сертификатов CA на хосте ESXi, подключенном к vCenter 6.7
Привет, сегодня решим проблему с установкой корпоративного SSL сертификата на ESXi host. Проблема в том, что хост управляется через vCenter.
Мне показалось, что инструкция в данной статье чересчур сложная. Сделаем всё сами, быстрее, проще и без простоя виртуальных машин.
Заходим в UI ESXi хоста:
Видим, что на хосте установлен самоподписанный сертификат. Логинимся под root.
This host’s certificates are being managed by vCenter Server, you cannot configure them using the Host Client.
Из-за того, что хост прикреплён к vCenter, нельзя с него управлять сертификатами. Кнопка Import new certificate не активна. Сертификат самоподписанный.
Заходим в vCenter, выбираем хост, на который будем устанавливать сертификат и делаем ему Disconnect. Виртуальные машины продолжают работать.
Обновляем другую вкладку с UI хоста.
Ошибка пропала, кнопка Import new certificate активна, нажимаем на неё.
Открывается окно импорта сертификата. Генерируем CSR, нажимаем Generate FQDN signing request.
Копируем в буфер сгенерированный код CSR. Close.
Открываем центр сертификации.
Request a certificate.
Advanced certificate request.
В Saved Request вставляем скопированный base64 код. Certificate Template меняем на Web Server.
Submit.
Устанавливаем галку Base 64 encoded и скачиваем сертификат Download certificate.
Открываем сертификат блокнотом, копируем содержимое.
Возвращаемся в UI ESXi хоста.
Вставляем код сертификата, нажимаем Import.
Certificate successfully updated, you should refresh your browser
Сертификат установлен. Нам предлагают перезапустить браузер. Перезапускаем браузер и открываем окно UI ESXi хоста.
Заходим в vCenter, выбираем ранее отключенный хост, делаем ему Connect.
Хост снова управляется через vCenter, однако, сертификат уже — корпоративный.
VMware Certificate Authority overview and using VMCA Root Certificates in a browser
With vSphere 6.0 the vCenter Virtual Server Appliance (VCSA), now has a component called the Platform Services Controller (PSC). The PSC handles things like SSO and the License Server and ships with its own Certificate Authority called VMware Certificate Authority (VMCA). In this blog post we’ll quickly go over some of the modes of VMCA operation and how to download and install the VMCA root certificate into your browser.
VMCA overview
VMCA issues certificates for VMware solution users, machine certificates for machines on which services are running, and ESXi host certificates. Host provisioning happens when the ESXi host is added to vCenter Server explicitly or as part of the ESXi host installation.
VMware Endpoint Certificate Store (VECS) serves as a local (client-side) repository for certificates, private keys, and other certificate information that can be stored in a keystore. You can decide not to use VMCA as your certificate authority and certificate signer, but you must use VECS to store all vCenter certificates, keys, and so on. ESXi certificates are stored locally on each host and not in VECS. VECS runs on every embedded deployment, Platform Services Controller node, and management node and holds the keystores that contain the certificates and keys.
With VMCA you can deal with certificates in three different ways. For the purposes of discussion we’ll call them
VMCA Default: VMCA uses a self-signed root certificate. It issues certificates to vCenter, ESXi, etc and manages these certificates. These certificates have a chain of trust that stops at the VMCA root certificate. VMCA is not a general purpose CA and its use is limited to VMware components.
VMCA Enterprise: VMCA is used as a subordinate CA and is issued subordinate CA signing certificate. It can now issue certificates that trust up to the enterprise CA’s root certificate. If you have already issued certs using VMCA Default and replace VMCA’s root cert with a CA signing cert then all certificates issued will be regenerated and pushed out to the components.
Custom: In this scenario VMCA is completely bypassed. This scenario is for those customers that want to issue and/or install their own certificates. You will need to issue a cert for every component, not unlike you do today for 5.5 when using 3rd party certs. And all of those certs (except for host certs) need to be installed into VECS.
In Default and Enterprise modes VMCA certificates can be easily regenerated on demand.
Important: For vSphere 6.0 the procedure for installing these certificates has changed from vSphere 5.x. In order to make this procedure less painful a new Certificate Manager tool is shipped as part of vCenter for Windows and VCSA. It will be located here:
Windows: C:Program FilesVMwarevCenter Servervmcad certificate-manager
Linux: /usr/lib/vmware-vmca/bin/certificate-manager
The procedure will be fully documented and will be the topic of a future blog article.
Downloading VMCA’s Root Certificate
Today when you connect to VCSA you get a web page like this:
Ugly, “feels” insecure, gets the security guys all wound up. (and we can’t have that happen!) Let’s get the root certificate from the VCSA and VMCA and install it in the browser so we don’t see these pages anymore.
Get the root certificate
Open up your web browser and go to the VCSA home page. I’ve outlined in red the link you’ll want to click on.
What you’ll get now is a folder in your Downloads folder called “certs”. In that folder are two files. It may also download as a zip file, depending on your browser. You may have to rename the file “download” to “download.zip”.
Installing the Root Certificate in the Firefox browser
The root CA is the one we’ll install in our browser. By doing this, the certificate presented by VCSA will chain its root of trust to the imported VMCA root CA certificate.
In Firefox I opened up the certificate list in Advanced settings, selected “Authorities”
Select “Trust this CA to identify websites” and click OK. Your root CA is now imported and if you open the VCSA web page you’ll find you are no longer presented with the option to verify the certificate. You may need to close and reopen the browser.
The process is similar for other browsers and is well documented for adding the root CA to Windows, Linux and Mac key stores if you prefer to do it that way.
Note: You’ll need to access the VCSA by its FQDN and not its IP address (like I normally do in a lab environment!). Otherwise you’ll get an error like this:
Note that any resource that presents a web page that has its certificate issued by VMCA will now show up as trusted.
For example, host certificates will be valid as well!
Recap
So, to summarize what we’ve learned:
I hope this was helpful. Give it a try in your lab environments and introduce your security people to these new concepts and options. I’ll be curious to hear what they say so send me an email at mfoley at vmware dot com with their feedback!
Thanks for reading,
Mike Foley
Mike Foley is a Staff Technical Marketing Architect in the vSphere group at VMware. From 2013 to 2020 Mike was «the guy» when it came to vSphere Security. Now he…
vCenter 6.7 — устанавливаем свой сертификат
Каждый раз процесс установки сертификата на vСenter проходил у меня с какими-то проблемами. На этот раз тоже не обошлось без трудностей, однако, их удалось все преодолеть.
Ставим корпоративный сертификат на vCenter 6.7. Задача: сгенерировать и установить на vCenter 6.7 сертификат, удовлетворяющий условиям:
Сделать шаблон vSphere 6.7 в центре сертификации
Это задача вынесена в отдельную статью. Здесь рассказывается как сделать шаблон в центре сертификации и настроить срок действия на 5 лет.
Поддержка нескольких алиасов и IP адреса
Эта задача тоже вынесена в отдельную статью.
Подготовительные работы
Скачиваем корневые сертификаты из центра сертификации.
Воспользуемся ссылкой Download a CA certificate, certificate chain, or CRL.
Download CA certificate. А если у вас несколько уровней, то скачиваем цепочку — Download CA certificate chain.
В случае с цепочкой нам нужен только этот файл. P7B переводим в PEM:
Лишние строки из результирующего файла можно удалить вручную.
Сгенерировать сертификат
Генерировать будем через shell. Для начала включим его. Заходим в админку vCenter 6.7. Обычно на порту 5480.
Логин root, пароль тот, что указывали при установке vCenter 6.7.
Переходим в раздел Access > Access Settings.
Видим, что Bash Shell — Disabled. Нажимаем EDIT.
Включаем Enable BASH Shell. Устанавливаем в минутах через сколько BASH Shell отключится. Ну хотя бы 500 минут, нам и меньше хватит.
Заходим на vCenter по SSH. Я использую putty.
Попадаем в CLI. Если Shell не включить, то при запуске команды:
увидим ошибку: «Shell is disabled».
А если shell включили, то ошибки нет:
Переключаемся в sudo:
Вот мы и под рутом. Выполняем команду:
*** Welcome to the vSphere 6.7 Certificate Manager ***
Выбираем первый пункт.
Replace Machine SSL certificate with Custom Certificate
Вводим «1». Логинимся под administrator@vsphere.local.
Для начала генерируем CSR (Certificate Signing Request), нажимаем «1».
И тут нас начинают спрашивать:
Отвечаем, получаем в итоге два файла:
Получаем содержимое vmca_issued_csr.csr:
Открываем центр сертификации.
Advanced certificate request.
Естественно, свои IP и DNS адреса вписываем.
Снова идём в shell.
Создаём файл vmca_issued_csr.cer:
Вставляем внутрь содержимое сертификата, сохраняем.
Создаём файл PS-CA.cer:
Вставляем внутрь содержимое корневого сертификата или цепочки (помним что переводили её в формат PEM), сохраняем.
Выбираем первый пункт. Replace Machine SSL certificate with Custom Certificate. Вводим «1». Логинимся под administrator@vsphere.local.
Потом выбираем второй пункт. Import custom certificate(s) and key(s) to replace existing Machine SSL certificate.
Нас спрашивают: «Please provide valid custom certificate for Machine SSL», указываем /tmp/vmca_issued_csr.cer.
Нас спрашивают: «Please provide valid custom key for Machine SSL», указываем /tmp/vmca_issued_key.key.
Нас спрашивают: «Please provide the signing certificate of the Machine SSL certificate», указываем /tmp/PS-CA.cer.
Полетело обновление сертификата, можно идти пить кофе.
All tasks completed successfully




























































