Поделиться через


Управление сертификатами для программно-определяемой сети

Применимо к: Azure Local 2311.2 и более поздних версий; Windows Server 2022, Windows Server 2019, Windows Server 2016

В этой статье описывается, как управлять сертификатами для сетевых контроллеров Northbound и Southbound при развертывании программно-определяемых сетей (SDN) и при использовании System Center диспетчер виртуальных машин (SCVMM) в качестве клиента управления SDN.

Примечание.

Общие сведения о сетевом контроллере см. в разделе "Сетевой контроллер".

Если вы не используете Kerberos для защиты связи сетевого контроллера, можно использовать сертификаты X.509 для проверки подлинности, авторизации и шифрования.

SDN в Windows Server 2019 и 2016 Datacenter поддерживает как самозаверенные, так и подписанные Удостоверяющим Центром сертификаты X.509. Эта тема содержит пошаговые инструкции по созданию этих сертификатов и их применению для защиты северных каналов связи контроллера сети с клиентами управления и южных каналов связи с сетевыми устройствами, такими как балансировщик нагрузки (SLB).

При использовании проверки подлинности на основе сертификатов необходимо зарегистрировать один сертификат на узлах сетевого контроллера, которые используются следующими способами.

  1. Шифрование северного направления связи с помощью протокола SSL между узлами сетевого контроллера и клиентами управления, такими как System Center Virtual Machine Manager.
  2. Проверка подлинности между узлами сетевого контроллера и устройствами и сервисами, такими как узлы Hyper-V и программные модули балансировки нагрузки (SLB).

Создание и регистрация сертификата X.509

Вы можете создать и зарегистрировать самозаверяющий сертификат или сертификат, выданный ЦС.

Примечание.

При использовании SCVMM для развертывания сетевого контроллера необходимо указать сертификат X.509, который используется для шифрования подключений на север во время настройки шаблона службы сетевого контроллера.

Конфигурация сертификата должна содержать следующие значения.

  • Значение текстового поля RestEndPoint должно быть полным доменным именем сетевого контроллера (FQDN) или IP-адресом.
  • Значение RestEndPoint должно соответствовать имени субъекта (common Name, CN) сертификата X.509.

Создание самозаверяющего сертификата X.509

Вы можете создать самозаверяющий сертификат X.509 и экспортировать его с закрытым ключом (защищенным паролем), выполнив следующие действия для одноузлового и нескольких узлов развертывания сетевого контроллера.

При создании самозаверяемых сертификатов можно использовать следующие рекомендации.

  • Можно использовать IP-адрес конечной точки REST контроллера сети для параметра DnsName, но это не рекомендуется, так как требуется, чтобы узлы сетевого контроллера находились в одной подсети управления (например, на одной стойке).
  • Для развертываний сетевого контроллера с несколькими узлами указанное вами DNS-имя станет полным доменным именем кластера сетевого контроллера (записи DNS типа A создаются автоматически).
  • Для развертываний сетевого контроллера одного узла DNS-имя может быть именем узла сетевого контроллера, за которым следует полное доменное имя.

несколько узлов

Для создания самозаверяющего сертификата можно использовать команду New-SelfSignedCertificate Windows PowerShell.

Синтаксис

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "<YourNCComputerName>" -DnsName @("<NCRESTName>")

Пример использования

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "MultiNodeNC" -DnsName @("NCCluster.Contoso.com")

отдельный узел

Для создания самозаверяющего сертификата можно использовать команду New-SelfSignedCertificate Windows PowerShell.

Синтаксис

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "<YourNCComputerName>" -DnsName @("<NCFQDN>")

Пример использования

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "SingleNodeNC" -DnsName @("SingleNodeNC.Contoso.com")

Создание сертификата X.509, подписанного Центром сертификации

Чтобы создать сертификат с помощью ЦС, необходимо уже развернуть инфраструктуру открытого ключа (PKI) со службами сертификатов Active Directory (AD CS).

Примечание.

Для создания сертификата для использования с сетевым контроллером можно использовать сторонние ЦС или средства, такие как opensl, однако инструкции в этом разделе относятся к AD CS. Инструкции по использованию стороннего Удостоверяющего центра или инструмента см. в документации по используемому программному обеспечению.

Создание сертификата с Центром сертификации (ЦС) включает следующие шаги.

  1. Вы или администратор безопасности вашей организации настраивает шаблон сертификата.
  2. Администратор сетевого контроллера вашей организации или администратор SCVMM запрашивает новый сертификат из ЦС.

Требования к конфигурации сертификата

При настройке шаблона сертификата на следующем шаге убедитесь, что настроенный шаблон включает следующие обязательные элементы.

  1. Имя субъекта сертификата должно быть полным доменным именем узла Hyper-V.
  2. Сертификат должен быть помещен в личное хранилище локального компьютера («My» - cert:\localmachine\my).
  3. Сертификат должен иметь политики приложений для проверки подлинности сервера (EKU: 1.3.6.1.5.5.7.3.1) и для проверки подлинности клиента (EKU: 1.3.6.1.5.5.7.3.2).

Примечание.

Если в хранилище сертификатов "Личный" (My – cert:\localmachine\my) на узле Hyper-V имеется несколько сертификатов X.509 с именем субъекта (CN) в качестве полного доменного имени узла (FQDN), убедитесь, что сертификат, который будет использоваться SDN, имеет дополнительное свойство расширенного использования ключей с OID 1.3.6.1.4.1.311.95.1.1.1. В противном случае связь между сетевым контроллером и узлом может не работать.

Настройка шаблона сертификата

Примечание.

Перед выполнением этой процедуры необходимо проверить требования к сертификату и доступные шаблоны сертификатов в консоли шаблонов сертификатов. Можно изменить существующий шаблон или создать дубликат существующего шаблона, а затем изменить копию шаблона. Рекомендуется создать копию существующего шаблона.

  1. На сервере, где установлен AD CS, в диспетчере сервера щелкните Инструменты, а затем выберите Сертификационный центр. Консоль управления Сертификационным центром Microsoft (MMC) открывается.
  2. В MMC дважды щелкните имя ЦС, щелкните правой кнопкой мыши шаблоны сертификатов и нажмите кнопку " Управление".
  3. Откроется консоль шаблонов сертификатов. Все шаблоны сертификатов отображаются в области сведений.
  4. В области сведений щелкните шаблон, который требуется дублировать.
  5. Выберите меню "Действие" и выберите пункт "Дублировать шаблон". Откроется диалоговое окно "Свойства шаблона".
  6. В диалоговом окне Свойства на вкладке Имя субъекта нажмите Указать в запросе. (Этот параметр необходим для SSL-сертификатов сетевого контроллера.)
  7. В диалоговом окне "Свойства шаблона" на вкладке "Обработка запросов" убедитесь, что выбран параметр "Разрешить экспорт закрытого ключа". Кроме того, убедитесь, что выбрана цель подписи и шифрования .
  8. В диалоговом окне "Свойства шаблона" на вкладке "Расширения" выберите "Использование ключа" и нажмите кнопку "Изменить".
  9. В сигнатуре убедитесь, что выбрана цифровая подпись.
  10. В диалоговом окне "Свойства шаблона" на вкладке "Расширения" выберите "Политики приложений" и нажмите кнопку "Изменить".
  11. В политиках приложений убедитесь, что указана проверка подлинности клиента и проверка подлинности сервера.
  12. Сохраните копию шаблона сертификата с уникальным именем, например шаблоном сетевого контроллера.

Чтобы запросить сертификат у ЦС

Вы можете использовать оснастку «Сертификаты», чтобы запросить сертификаты. Вы можете запросить любой тип сертификата, который был предварительно настроен и доступен администратором ЦС, обрабатывающим запрос сертификата.

Пользователи или локальные администраторы — это минимальное членство в группах , необходимое для выполнения этой процедуры.

  1. Откройте оснастку Сертификаты на компьютере.
  2. В дереве консоли щелкните сертификаты (локальный компьютер). Выберите хранилище персональных сертификатов.
  3. В меню "Действие" наведите указатель на ** Все задачи и нажмите кнопку **Запросить новый сертификат, чтобы запустить мастер регистрации сертификатов. Нажмите кнопку Далее.
  4. Выберите политику регистрации сертификатов, настроенную администратором и нажмите Далее.
  5. Выберите политику регистрации Active Directory (основываясь на шаблоне ЦС, который вы настроили в предыдущем разделе).
  6. Разверните раздел "Сведения" и настройте следующие элементы.
  7. Убедитесь, что использование ключей включает как цифровую подпись **, так и **Шифрование ключей.
  8. Убедитесь, что политики приложений включают проверку подлинности сервера (1.3.6.1.5.5.7.3.1) и проверку подлинности клиента (1.3.6.1.5.5.7.3.2).
  9. Выберите команду Свойства.
  10. На вкладке "Тема" в имени темы в поле "Тип" выберите общее имя. В значении укажите конечную точку REST контроллера сети.
  11. Щелкните Применить, затем щелкните ОК.
  12. Нажмите кнопку " Регистрация".

В MMC сертификатов щелкните "Личное" хранилище, чтобы просмотреть сертификат, который вы запросили из ЦС.

Экспорт и копирование сертификата в библиотеку SCVMM

После создания самозаверенного или подписанного удостоверяющим центром (ЦС) сертификата необходимо экспортировать сертификат с закрытым ключом (в формате PFX) и без закрытого ключа (в формате Base-64 .cer) из оснастки "Сертификаты".

Затем необходимо скопировать два экспортированных файла в ServerCertificate.cr и NCCertificate.cr папки, указанные во время импорта шаблона службы NC.

  1. Откройте оснастку "Сертификаты" (certlm.msc) и найдите сертификат в хранилище персональных сертификатов для локального компьютера.
  2. Щелкните сертификат правой кнопкой мыши, в контекстном меню выберите Все задачии затем нажмите Экспорт. Откроется мастер экспорта сертификатов. Нажмите кнопку Далее.
  3. Выберите "Да", экспортируйте параметр закрытого ключа, нажмите кнопку "Далее".
  4. Выберите "Обмен персональными данными" — PKCS #12 (). PFX) и примите значение по умолчанию, чтобы включить все сертификаты в путь сертификации, если это возможно.
  5. Назначьте пользователям и группам пароль для экспортируемого сертификата, нажмите кнопку "Далее".
  6. На странице экспорта файла просмотрите расположение, в котором нужно разместить экспортируемый файл, и присвойте ему имя.
  7. Аналогичным образом экспортируйте сертификат в формате .CER. Примечание: Чтобы экспортировать в формате .CER, снимите флажок «Да, экспортировать закрытый ключ».
  8. Скопируйте файл . PFX в папку ServerCertificate.cr.
  9. Скопируйте файл . CER-файл в папку NCCertificate.cr.

По завершении обновите эти папки в библиотеке SCVMM и убедитесь, что эти сертификаты скопированы. Перейдите к конфигурации и развертыванию шаблона службы сетевого контроллера.

Аутентификация устройств и сервисов южного направления

Сетевой контроллер, осуществляющий связь с узлами и устройствами мультиплексоров программной балансировки нагрузки, использует сертификаты для проверки подлинности. Общение с хостами осуществляется через протокол OVSDB, а с устройствами SLB MUX — через протокол WCF.

Обмен данными узла Hyper-V с сетевым контроллером

Для взаимодействия с узлами Hyper-V через OVSDB сетевой контроллер должен представить сертификат на хост-компьютерах. По умолчанию SCVMM выбирает SSL-сертификат, настроенный на сетевом контроллере, и использует его для связи на юге с узлами.

Вот почему сертификат SSL должен быть сконфигурирован с EKU для аутентификации клиента. Этот сертификат настраивается на ресурсе REST "Серверы" (узлы Hyper-V представлены в сетевом контроллере в качестве ресурса сервера) и могут просматриваться с помощью команды Windows PowerShell Get-NetworkControllerServer.

Ниже приведен частичный пример ресурса REST сервера.

   "resourceId": "host31.fabrikam.com",
      "properties": {
        "connections": [
          {
            "managementAddresses": [
               "host31.fabrikam.com"
            ],
            "credential": {
              "resourceRef": "/credentials/a738762f-f727-43b5-9c50-cf82a70221fa"
            },
            "credentialType": "X509Certificate"
          }
        ],

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

Сертификат можно зарегистрировать из центра сертификации (ЦС). Если сертификат центра сертификации не найден на хост-компьютере, SCVMM создает сертификат с самоподписью и устанавливает его на хост-компьютер.

Контроллер сети и сертификаты узлов Hyper-V должны взаимно доверять друг другу. Корневой сертификат сертификата узла Hyper-V должен быть в хранилище доверенных корневых центров сертификации контроллера сети для локального компьютера, и наоборот.

При использовании самозаверенных сертификатов SCVMM обеспечивает наличие необходимых сертификатов в хранилище доверенных корневых центров сертификации для локального компьютера.

Если вы используете сертификаты, выданные центром сертификации (ЦС), для узлов Hyper-V, необходимо убедиться, что корневой сертификат ЦС присутствует в хранилище доверенных корневых центров сертификации для локального компьютера сетевого контроллера.

Коммуникация Software Load Balancer MUX с Network Controller

Мультиплексор программной подсистемы балансировки нагрузки (MUX) и сетевой контроллер взаимодействуют по протоколу WCF, используя сертификаты для проверки подлинности.

По умолчанию SCVMM выбирает SSL-сертификат, настроенный на сетевом контроллере, и использует его для связи на юге с устройствами Mux. Этот сертификат настраивается в ресурсе REST NetworkControllerLoadBalancerMux и может просматриваться, выполнив командлет PowerShell Get-NetworkControllerLoadBalancerMux.

Пример ресурса REST MUX (частично):

      "resourceId": "slbmux1.fabrikam.com",
      "properties": {
        "connections": [
          {
            "managementAddresses": [
               "slbmux1.fabrikam.com"
            ],
            "credential": {
              "resourceRef": "/credentials/a738762f-f727-43b5-9c50-cf82a70221fa"
            },
            "credentialType": "X509Certificate"
          }
        ],

Для взаимной проверки подлинности необходимо также иметь сертификат на устройствах SLB MUX. Этот сертификат автоматически настраивается SCVMM при развертывании подсистемы балансировки нагрузки программного обеспечения с помощью SCVMM.

Внимание

На узлах хоста и SLB важно, чтобы хранилище сертификатов доверенных корневых центров сертификации не включало сертификат, в котором "Выдано" отличается от "Выдано кем". Если это происходит, обмен данными между сетевым контроллером и южным устройством завершается сбоем.

Сетевой контроллер и сертификаты диспетчера SLB (SLB MUX) должны быть доверенными друг другу (корневой сертификат диспетчера SLB должен присутствовать в хранилище доверенных корневых центров сертификации сетевого контроллера и наоборот). При использовании самозаверенных сертификатов SCVMM обеспечивает наличие необходимых сертификатов в хранилище доверенных корневых центров сертификации для локального компьютера.