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


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

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

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

Необходимые условия

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

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

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

Заметка

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

Чтобы подготовить CSR для новых 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. Создайте CSR, выполнив одно из следующих действий:

    • Для среды промышленного развертывания первый скрипт создаст CSR для сертификатов развертывания:

      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
      
    • Третий скрипт создаст CSR для всех необязательных служб 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 
      
    • Для среды с низким уровнем привилегий, чтобы создать файл шаблона сертификата в открытом текстовом формате с заявленными атрибутами, добавьте параметр -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.

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

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

Создание CSR

  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. Создайте CSR, выполнив одно или несколько следующих действий:

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

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

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • Третий скрипт создаст CSR для всех необязательных служб 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, содержит запросы на сертификат, которые должны быть отправлены в удостоверяющий центр. Каталог также содержит дочерний каталог, содержащий INF-файлы, которые будут использоваться во время создания запроса сертификата. Убедитесь, что ваш Центр сертификации создает сертификаты, используя созданный запрос, соответствующий требованиям PKI Azure Stack Hub.

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

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