Générer des demandes de signature de certificat pour Azure Stack Hub

Vous pouvez utiliser l’outil Azure Stack Hub Readiness Checker pour créer des demandes de signature de certificat (CSR) adaptées à un déploiement Azure Stack Hub, ou pour le renouvellement des certificats d’un déploiement existant. Il est important de demander, de générer et de valider des certificats en prévoyant un délai suffisant pour les tester avant leur déploiement.

L’outil permet de demander les certificats suivants, en fonction du sélecteur Choisir un scénario de certificat CSR au début de cet article :

Prérequis

Avant de générer des CSR pour les certificats PKI dans le cadre d’un déploiement Azure Stack Hub, votre système doit respecter les prérequis suivants :

  • Vous devez utiliser une machine avec Windows 10 ou version ultérieure, ou Windows Server 2016 ou version ultérieure.
  • Installez l’outil Azure Stack Hub Readiness Checker à partir d’une invite PowerShell (5.1 ou version ultérieure) en exécutant l’applet de commande suivante :
         Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  • Vous aurez besoin des attributs suivants pour votre certificat :
    • Nom de la région
    • Nom de domaine pleinement qualifié externe (FQDN)
    • Objet

Générer des CSR pour les nouveaux certificats de déploiement

Notes

Une élévation est nécessaire pour générer des demandes de signature de certificat. Dans les environnements restreints où l’élévation n’est pas possible, vous pouvez utiliser cet outil pour générer des fichiers modèles en texte clair, qui contiennent toutes les informations nécessaires pour les certificats externes Azure Stack Hub. Vous devez ensuite utiliser ces fichiers modèles sur une session avec élévation de privilèges pour terminer la génération de la paire de clés publique/privée. Vous trouverez plus de détails à la suite.

Si vous souhaitez préparer les CSR pour les nouveaux certificats PKI Azure Stack Hub, effectuez les étapes suivantes :

  1. Ouvrez une session PowerShell sur la machine où vous avez installé l’outil Readiness Checker.

  2. Déclarez les variables suivantes :

    Notes

    <regionName>.<externalFQDN> constitue la base sur laquelle tous les noms DNS externes dans Azure Stack Hub sont créés. Dans cet exemple, le portail est 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
    

Générez maintenant les CSR à l’aide de la même session PowerShell. Les instructions sont propres au format de l’objet que vous sélectionnez ci-dessous :

Notes

Le premier nom DNS du service Azure Stack Hub sera configuré en tant que champ CN pour la demande de certificat.

  1. Déclarez un objet, par exemple :

    $subject = "C=US,ST=Washington,L=Redmond,O=Microsoft,OU=Azure Stack Hub"
    
  1. Générez les CSR en effectuant l’une des tâches suivantes :

    • Pour un environnement de déploiement de production, le premier script génère des RSC pour les certificats de déploiement :

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      
    • Le deuxième script, si vous le souhaitez, utilise et -IncludeContainerRegistry génère une CSR pour Azure Container Registry en même temps que les CSR pour les certificats de déploiement :

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
      
    • Le troisième script génère des RSC pour tous les services PaaS facultatifs que vous avez installés :

      # 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 
      
    • Pour les environnements à faibles privilèges, vous pouvez également générer un fichier modèle de certificat en texte clair avec les attributs nécessaires déclarés en ajoutant le paramètre -LowPrivilege :

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -LowPrivilege
      
    • Dans un environnement de développement et de test, pour générer un seul CSR avec plusieurs noms d’objets, ajoutez le paramètre et la valeur -RequestType SingleCSR.

      Important

      Nous vous déconseillons d’utiliser cette approche pour les environnements de production.

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

Effectuez les étapes finales :

  1. Passez en revue la sortie :

    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. Si le paramètre -LowPrivilege a été utilisé, un fichier .inf a été généré dans le sous-répertoire C:\Users\username\Documents\AzureStackCSR. Par exemple :

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

    Copiez le fichier sur un système où l’élévation est autorisée, puis signez chaque demande avec certreq en utilisant la syntaxe suivante : certreq -new <example.inf> <example.req>. Ensuite, effectuez le reste du processus sur ce système élevé, car il nécessite la correspondance du nouveau certificat signé par l’autorité de certification avec sa clé privée, qui est générée sur le système élevé.

  • La région de votre système et le nom de domaine externe (FQDN) sont utilisés par Readiness Checker pour déterminer le point de terminaison à partir duquel extraire les attributs de vos certificats existants. Si l’un des éléments suivants s’applique à votre scénario, vous devez utiliser le sélecteur Choisir un scénario de certificat CSR au début de cet article, puis choisir la version Nouveau déploiement de cet article à la place :
    • Vous souhaitez modifier les attributs des certificats au niveau du point de terminaison, comme l’objet, la longueur de la clé et l’algorithme de signature.
    • Vous souhaitez utiliser un objet de certificat qui contient uniquement l’attribut de nom commun.
  • Avant de commencer, vérifiez que vous disposez d’une connectivité HTTPS pour votre système Azure Stack Hub.

Générer des CSR pour les certificats de renouvellement

Cette section traite de la préparation des CSR pour le renouvellement des certificats PKI Azure Stack Hub existants.

Générer des CSR

  1. Ouvrez une session PowerShell sur la machine où vous avez installé l’outil Readiness Checker.

  2. Déclarez les variables suivantes :

    Notes

    Readiness Checker utilise stampEndpoint ainsi qu’une chaîne préfixée pour rechercher des certificats existants. Par exemple, portal.east.azurestack.contoso.com est utilisé pour les certificats de déploiement, sso.appservices.east.azurestack.contoso.com pour les certificats App Services, etc.

    $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. Générez les CSR en effectuant une ou plusieurs des tâches suivantes :

    • Pour un environnement de production, le premier script génère des RSC pour les certificats de déploiement :

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
    • Le deuxième script, si vous le souhaitez, utilise et -IncludeContainerRegistry génère une CSR pour Azure Container Registry en même temps que les CSR pour les certificats de déploiement :

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • Le troisième script génère des RSC pour tous les services PaaS facultatifs que vous avez installés :

      # 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 
      
    • Dans un environnement de développement et de test, pour générer un seul CSR avec plusieurs noms d’objets, ajoutez le paramètre et la valeur -RequestType SingleCSR.

      Important

      Nous vous déconseillons d’utiliser cette approche pour les environnements de production.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -RequestType SingleCSR
      
  4. Passez en revue la sortie :

    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
    

Quand vous êtes prêt, envoyez le fichier .req généré à votre autorité de certification (interne ou publique). Le répertoire spécifié par la variable $outputDirectory contient les CSR qui doivent être soumis à une autorité de certification. Ce répertoire contient également, pour votre information, un répertoire enfant contenant les fichiers .inf utilisés pendant la génération de demande de certificat. Assurez-vous que votre autorité de certification génère des certificats en utilisant une requête générée conforme aux exigences PKI d’Azure Stack Hub.

Étapes suivantes

Après avoir reçu vos certificats de la part de votre autorité de certification, vous devrez procéder aux étapes décrites dans Préparer des certificats PKI Azure Stack Hub sur le même système.