Создание запросов на подписывание сертификатов для Azure Stack Hub

Средство проверки готовности Azure Stack Hub используется для создания запросов на подпись сертификатов (CSR), которые подходят для развертывания Azure Stack Hub, или для продления сертификатов для существующего развертывания. Важно запрашивать, создавать и проверять сертификаты с достаточным временем выполнения, чтобы протестировать их перед развертыванием.

Средство используется для запроса следующих сертификатов на основе селектора Выбор сценария CSR-сертификата в верхней части этой статьи:

  • Стандартные сертификаты для нового развертывания. Выберите Новое развертывание с помощью селектора Выбор сценария сертификата CSR в верхней части этой статьи.
  • Продление сертификатов для существующего развертывания. Выберите Продление с помощью селектора Выбор сценария csR-сертификата в верхней части этой статьи.
  • Сертификаты платформы как услуги (PaaS). При необходимости можно создать как стандартные сертификаты, так и сертификаты продления. Дополнительные сведения см. в статье Требования к сертификатам инфраструктуры открытых ключей Azure Stack Hub (PKI) — необязательные сертификаты PaaS .

Предварительные требования

Перед созданием CCR для PKI-сертификатов для развертывания Azure Stack Hub система должна соответствовать следующим предварительным требованиям:

  • Вы должны быть на компьютере с Windows 10 или более поздней версии, а также Windows Server 2016 или более поздней версии.
  • Установите средство проверки готовности Azure Stack Hub из командной строки PowerShell (5.1 или более поздней версии) с помощью следующего командлета:
         Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  • Для сертификата потребуются следующие атрибуты:
    • Имя региона
    • Внешнее полное доменное имя (FQDN)
    • Тема

Создание CCR для новых сертификатов развертывания

Примечание

Для создания запросов на подпись сертификата требуется повышение прав. В средах с ограниченным доступом, где повышение прав невозможно, это средство можно использовать для создания файлов шаблонов с четким текстом, которые содержат все сведения, необходимые для внешних сертификатов Azure Stack Hub. Затем необходимо использовать эти файлы шаблонов в сеансе с повышенными привилегиями, чтобы завершить создание пары открытого и закрытого ключей. Дополнительные сведения см. ниже.

Чтобы подготовить CCR для новых PKI-сертификатов Azure Stack Hub, выполните следующие действия.

  1. Откройте сеанс PowerShell на компьютере, где установлено средство проверки готовности.

  2. Объявите следующие переменные:

    Примечание

    На основе <regionName>.<externalFQDN> создаются все внешние DNS-имена в Azure Stack Hub. В следующем примере портал будет иметь значение portal.east.azurestack.contoso.com.

    $outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR" # An existing output directory
    $IdentitySystem = "AAD"                     # Use "AAD" for Azure Active Director, "ADFS" for Active Directory Federation Services
    $regionName = 'east'                        # The region name for your Azure Stack Hub deployment
    $externalFQDN = 'azurestack.contoso.com'    # The external FQDN for your Azure Stack Hub deployment
    

Теперь создайте csr с помощью того же сеанса PowerShell. Инструкции относятся к выбранному ниже формату Темы :

Примечание

Первое DNS-имя службы Azure Stack Hub будет настроено в качестве поля CN в запросе на сертификат.

  1. Объявите тему, например:

    $subject = "C=US,ST=Washington,L=Redmond,O=Microsoft,OU=Azure Stack Hub"
    
  1. Создайте CCR, выполнив одно из следующих действий.

    • Для рабочей среды развертывания первый скрипт создаст CCR для сертификатов развертывания:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      
    • Второй скрипт, при необходимости, использует -IncludeContainerRegistry и создаст CSR для Реестр контейнеров Azure одновременно с CSR для сертификатов развертывания:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
      
    • Третий скрипт создаст CCR для всех дополнительных служб PaaS, которые вы установили:

      # App Services
      New-AzsHubAppServicesCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # DBAdapter (SQL/MySQL)
      New-AzsHubDbAdapterCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # EventHubs
      New-AzsHubEventHubsCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # Azure Container Registry
      New-AzsHubAzureContainerRegistryCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory 
      
    • Для среды с низким уровнем привилегий добавьте параметр , чтобы создать файл шаблона сертификата в формате clear-text с объявленными необходимыми -LowPrivilege атрибутами:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -LowPrivilege
      
    • Для среды разработки и тестирования, чтобы создать один CSR с альтернативными именами нескольких субъектов, добавьте -RequestType SingleCSR параметр и значение.

      Важно!

      Мы не рекомендуем использовать этот подход для рабочих сред.

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -RequestType SingleCSR -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      

Выполните последние шаги.

  1. Просмотрите выходные данные:

    Starting Certificate Request Process for Deployment
    CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com
    Present this CSR to your Certificate Authority for Certificate Generation:  C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538.req
    Certreq.exe output: CertReq: Request Created
    
  2. Если использовался -LowPrivilege параметр, в подкаталоге C:\Users\username\Documents\AzureStackCSR был создан INF-файл. Пример:

    C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538_ClearTextTemplate.inf

    Скопируйте файл в систему, где разрешено повышение прав, а затем подписывание каждого запроса с certreq помощью следующего синтаксиса: certreq -new <example.inf> <example.req>. Затем завершите остальную часть процесса в этой системе с повышенными привилегиями, так как для этого требуется сопоставить новый сертификат, подписанный ЦС, с закрытым ключом, который создается в системе с повышенными привилегиями.

  • Регион системы и внешнее доменное имя (FQDN) будут использоваться средством проверки готовности для определения конечной точки для извлечения атрибутов из существующих сертификатов. Если к вашему сценарию относится одно из следующих действий, необходимо использовать селектор Выбор сценария сертификата CSR в верхней части этой статьи и выбрать новую версию развертывания этой статьи:
    • Вы хотите изменить атрибуты сертификатов в конечной точке, такие как тема, длина ключа и алгоритм подписи.
    • Вы хотите использовать субъект сертификата, содержащий только атрибут общего имени.
  • Перед началом убедитесь, что у вас есть httpS-подключение для системы Azure Stack Hub.

Создание CCR для сертификатов обновления

В этом разделе рассматривается подготовка CCR для продления существующих PKI-сертификатов Azure Stack Hub.

Создание CCR

  1. Откройте сеанс PowerShell на компьютере, где установлено средство проверки готовности.

  2. Объявите следующие переменные:

    Примечание

    Средство проверки готовности использует stampEndpoint плюс добавленную строку для поиска существующих сертификатов. Например, portal.east.azurestack.contoso.com используется для сертификатов развертывания, sso.appservices.east.azurestack.contoso.com для сертификатов служб приложений и т. д.

    $regionName = 'east'                                            # The region name for your Azure Stack Hub deployment
    $externalFQDN = 'azurestack.contoso.com'                        # The external FQDN for your Azure Stack Hub deployment    
    $stampEndpoint = "$regionName.$externalFQDN"
    $outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR"   # Declare the path to an existing output directory
    
  3. Создайте CCR, выполнив одно или несколько из следующих действий.

    • Для рабочей среды первый скрипт создаст CCR для сертификатов развертывания:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
    • Второй скрипт, при необходимости, использует -IncludeContainerRegistry и создаст CSR для Реестр контейнеров Azure одновременно с CSR для сертификатов развертывания:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • Третий скрипт создаст CCR для всех дополнительных служб PaaS, которые вы установили:

      # App Services
      New-AzsHubAppServicesCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # DBAdapter
      New-AzsHubDBAdapterCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # EventHubs
      New-AzsHubEventHubsCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # Azure Container Registry
      New-AzsHubAzureContainerRegistryCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory 
      
    • Для среды разработки и тестирования, чтобы создать один CSR с альтернативными именами нескольких субъектов, добавьте -RequestType SingleCSR параметр и значение.

      Важно!

      Мы не рекомендуем использовать этот подход для рабочих сред.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -RequestType SingleCSR
      
  4. Просмотрите выходные данные:

    Querying StampEndpoint portal.east.azurestack.contoso.com for existing certificate
    Starting Certificate Request Process for Deployment
    CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com
    Present this CSR to your certificate authority for certificate generation: C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710122723.req
    Certreq.exe output: CertReq: Request Created
    

Когда все будет готово, отправьте созданный REQ-файл в ЦС (внутренний или общедоступный). Каталог, указанный переменной $outputDirectory , содержит CCR, которые должны быть отправлены в ЦС. Каталог также содержит дочерний каталог, содержащий INF-файлы, которые будут использоваться во время создания запроса на сертификат. Убедитесь, что ЦС создает сертификаты с помощью созданного запроса, соответствующего требованиям PKI Azure Stack Hub.

Дальнейшие действия

Получив сертификаты из центра сертификации, выполните действия, описанные в статье Подготовка PKI-сертификатов Azure Stack Hub в той же системе.