none
Обновление сертификатов SCVMM 2012 R2 RRS feed

  • Общие обсуждения

  • Добрый день.

    Имеется следующая проблема:

    На всех серверах SCVMM (управляющие сервера VMM, хосты Hyper-V, сервера библиотек и т.д.) имеется самоподписанный сертификат. Создается он автоматически, на управляющих серверах при установке VMM, на остальных серверах при добавлении их в VMM. Находится сертификат в персональном хранилище компьютера, опознать его можно по имени SCVMM_CERTIFICATE_KEY_CONTAINER<computername>.

    Срок действия сертификата составляет 5 лет. По истечении этого срока сертификат надо обновить, т.к. иначе VMM перестает нормально работать. Но каких либо штатных путей обновления сертификата я не нашел, единственный способ - это вынести сервер из VMM и заново его добавить. Для хостов Hyper-V такой вариант подходит, но в случае с управляющими серверами это невозможно, поскольку требуется полностью переустановить VMM.

    А теперь вопрос - есть ли какое либо решение, позволяющее обновить сертификат на VMM без переустановки.

    11 января 2018 г. 9:50

Все ответы

  • Да, конечно можно. Для этого предназначен командлет Register-SCVMMManagedComputer. С его помощью можно обновить так же сертификаты на хостах, серверах библиотек VMM и т.д. 

    Надо:

    1. Удалить устаревший сертификат (если он уже истек, то можно попробовать этот шаг пропустить, протестировать мне негде)

    2. Выполнить на сервере SCVMM:

    $credential = Get-Credential
    Get-VMMManagedComputer –ComputerName “Computername”|Register-SCVMMManagedComputer –Credential $credential

    3. Проверить, что новый сертификат появился.

    11 января 2018 г. 12:46
  • Пробовал.

    Для хостов, библиотек и прочих серверов можно использовать, а в случае с VMM сервером это не работает.  Выдается сообщение, что VMM сервер не может быть ассоциирован с другим VMM сервером.

    11 января 2018 г. 14:01
  • Да, действительно, проверил у себя в лабе. Для SCVMM сервера не работает. Пока с такой проблемой не сталкивался, надо подумать. 

    Если вариантов не найдется, то выполнить переустановку сервера VMM. Ничего страшного в этом нет - главное сохранить базу, когда выполняется удаление (там будет соответствующая галочка). Работы минут на 30, но в тестовой среде отработать крайне желательно, как и всегда в таких случаях.

    11 января 2018 г. 14:28
  • Путь решения который сработал у меня:

    0) Удаляю старый сертификат VMM сервера с сервера. Все что содержит friendly name = SCVMM_CERTIFICATE_KEY_CONTAINER.

    1) Создается новый сертификат на VMM сервере.

    Makecert.exe -r "D:\VMMcert.cer" -a sha1 -len 2048 -e 01/18/2023 -cy end -n "CN=VMMcert.contoso.com" -eku "1.3.6.1.5.5.7.3.1","1.3.6.1.5.5.7.3.2" -pe -sv "D:\VMMcert.pvk"
    pvk2pfx.exe -pvk "D:\VMMcert.pvk" -spc "D:\VMMcert.cer" -pfx "D:\VMMcert.pfx"

    2) В личные сертификаты VMM сервера (cert:\my) импортирую VMMcert.pfx ( в нем закрытый ключ).

    3) В Доверенные корневые центры сертификации VMM сервера (cert:\CA) и доверенные лица (cert:\TrustedPeople) импортирую VMMcert.cer (открытый ключ).

    4) Дописываю к импортированным сертификатам Friendly name = SCVMM_CERTIFICATE_KEY_CONTAINERИмя_сервера.

    $cert1 = Get-ChildItem -Path cert:\LocalMachine\ROOT | where {$_.Subject -like 'CN=VMMserver.contoso.com'}
    $cert2 = Get-ChildItem -Path cert:\LocalMachine\CA | where {$_.Subject -like 'CN=VMMserver.contoso.com'}
    $cert3 = Get-ChildItem -Path cert:\LocalMachine\TrustedPeople | where {$_.Subject -like 'CN=VMMserver.contoso.com'}
    
    $cert1.FriendlyName = "SCVMM_CERTIFICATE_KEY_CONTAINERVMMserver.contoso.com"
    $cert2.FriendlyName = "SCVMM_CERTIFICATE_KEY_CONTAINERVMMserver.contoso.com"
    $cert3.FriendlyName = "SCVMM_CERTIFICATE_KEY_CONTAINERVMMserver.contoso.com"

    Из PS потому что он позволяет писать в поле FriendlyName больше символов, чем позволяет консоль "mmc-сертификаты".

    5) Регистрируем сертификат

    $credential = Get-Credential
    Get-VMMManagedComputer –ComputerName “VMMserver.contoso.com”|Register-SCVMMManagedComputer –Credential $credential

    6) Перегружаем сервис VMM на сервере

    stop-serivce SCVMMAgent
    restart-serivce SCVMMService
    start-serivce SCVMMAgent

    7) Лезем на каждый подконтрольный VMM хост, аля Hyper-V, WSUS, PXE и т.д. Импортируем в доверенные лица (cert:\TrustedPeople) сертификат VMMcert.cer и затем выполняем на них следующий скрипт:

    $cert = Get-ChildItem -Path cert:\LocalMachine\TrustedPeople | where {$_.Subject -like 'CN=VMMserver.contoso.com'} $cert.FriendlyName = "SCVMM_CERTIFICATE_KEY_CONTAINERVMMserver.contoso.com"

    restart-service -Name SCVMMAgent

    VMMserver.contoso.com - FQDN-имя вашего сервера VMM


    18 января 2018 г. 12:01