Generare richieste di firma del certificato per l'hub di Azure Stack

È possibile usare lo strumento Controllo conformità hub di Azure Stack per creare richieste di firma dei certificati (CSR) adatte per una distribuzione dell'hub di Azure Stack o per il rinnovo dei certificati per una distribuzione esistente. È importante richiedere, generare e convalidare i certificati con un tempo di lead sufficiente per testarli prima della distribuzione.

Lo strumento viene usato per richiedere i certificati seguenti, in base al selettore Scegliere uno scenario di certificato CSR nella parte superiore di questo articolo:

Prerequisiti

Prima di generare certificati CSR per i certificati PKI per una distribuzione dell'hub di Azure Stack, il sistema deve soddisfare i prerequisiti seguenti:

  • È necessario essere in un computer con Windows 10 o versioni successive o Windows Server 2016 o versioni successive.
  • Installare lo strumento di controllo conformità dell'hub di Azure Stack da un prompt di PowerShell (5.1 o versione successiva) usando il cmdlet seguente:
         Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  • Sono necessari gli attributi seguenti per il certificato:
    • Nome area
    • Nome di dominio completo esterno (FQDN)
    • Oggetto

Generare i certificati di distribuzione per i nuovi certificati di distribuzione

Nota

L'elevazione è necessaria per generare richieste di firma del certificato. Negli ambienti con restrizioni in cui l'elevazione non è possibile, è possibile usare questo strumento per generare file di modello di testo cancellabile, che contengono tutte le informazioni necessarie per i certificati esterni dell'hub di Azure Stack. È quindi necessario usare questi file di modello in una sessione con privilegi elevati per completare la generazione della coppia di chiavi pubblica/privata. Vedere di seguito per altri dettagli.

Per preparare i certificati CSR per i nuovi certificati PKI dell'hub di Azure Stack, completare la procedura seguente:

  1. Aprire una sessione di PowerShell nel computer in cui è stato installato lo strumento Controllo conformità.

  2. Dichiarare le variabili seguenti:

    Nota

    <regionName>.<externalFQDN> forma la base su cui vengono creati tutti i nomi DNS esterni nell'hub di Azure Stack. Nell'esempio seguente il portale sarà 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
    

Generare ora le richieste di archiviazione tramite la stessa sessione di PowerShell. Le istruzioni sono specifiche del formato Soggetto selezionato di seguito:

Nota

Il primo nome DNS del servizio Hub di Azure Stack verrà configurato come campo CN nella richiesta di certificato.

  1. Dichiarare un oggetto, ad esempio:

    $subject = "C=US,ST=Washington,L=Redmond,O=Microsoft,OU=Azure Stack Hub"
    
  1. Generare le richieste di archiviazione completando una delle operazioni seguenti:

    • Per un ambiente di distribuzione di produzione, il primo script genererà i certificati di distribuzione:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      
    • Il secondo script, se desiderato, usa e -IncludeContainerRegistry genererà una CSR per Registro Azure Container contemporaneamente ai certificati di distribuzione:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
      
    • Il terzo script genererà le csr per tutti i servizi PaaS facoltativi installati:

      # 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 
      
    • Per un ambiente con privilegi limitati, per generare un file di modello di certificato clear-text con gli attributi necessari dichiarati, aggiungere il -LowPrivilege parametro:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -LowPrivilege
      
    • Per un ambiente di sviluppo e test, per generare una singola CSR con nomi alternativi a più soggetti, aggiungere il parametro e il -RequestType SingleCSR valore.

      Importante

      Non è consigliabile usare questo approccio per gli ambienti di produzione.

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

Completare i passaggi finali:

  1. Esaminare l'output:

    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. Se il -LowPrivilege parametro è stato usato, viene generato un file inf nella C:\Users\username\Documents\AzureStackCSR sottodirectory. Ad esempio:

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

    Copiare il file in un sistema in cui è consentita l'elevazione, quindi firmare ogni richiesta usando certreq la sintassi seguente: certreq -new <example.inf> <example.req>. Completare quindi il resto del processo in quel sistema con privilegi elevati, perché richiede la corrispondenza del nuovo certificato firmato dalla CA con la relativa chiave privata, generata nel sistema con privilegi elevati.

  • L'area del sistema e il nome di dominio esterno (FQDN) verranno usati dal Controllo conformità per determinare l'endpoint per estrarre gli attributi dai certificati esistenti. Se uno dei seguenti scenari si applica allo scenario, è necessario usare il selettore Scegliere uno scenario di certificato CSR nella parte superiore di questo articolo e selezionare invece la nuova versione di distribuzione di questo articolo:
    • Si desidera modificare gli attributi dei certificati nell'endpoint, ad esempio oggetto, lunghezza chiave e algoritmo di firma.
    • Si vuole usare un oggetto certificato che contiene solo l'attributo nome comune.
  • Verificare che sia disponibile la connettività HTTPS per il sistema hub di Azure Stack prima di iniziare.

Generare csr per i certificati di rinnovo

Questa sezione illustra la preparazione dei certificati csr per il rinnovo dei certificati PKI dell'hub di Azure Stack esistenti.

Generare csr

  1. Aprire una sessione di PowerShell nel computer in cui è stato installato lo strumento Controllo conformità.

  2. Dichiarare le variabili seguenti:

    Nota

    Il controllo conformità usa stampEndpoint una stringa prependata per trovare i certificati esistenti. Ad esempio, portal.east.azurestack.contoso.com viene usato per i certificati di distribuzione, sso.appservices.east.azurestack.contoso.com per i certificati dei servizi app e così via.

    $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. Generare le richieste di archiviazione completando una o più delle operazioni seguenti:

    • Per un ambiente di produzione, il primo script genererà i certificati di distribuzione:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
    • Il secondo script, se desiderato, usa e -IncludeContainerRegistry genererà una CSR per Registro Azure Container contemporaneamente ai certificati di distribuzione:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • Il terzo script genererà le csr per tutti i servizi PaaS facoltativi installati:

      # 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 
      
    • Per un ambiente di sviluppo e test, per generare una singola CSR con nomi alternativi a più soggetti, aggiungere il parametro e il -RequestType SingleCSR valore.

      Importante

      Non è consigliabile usare questo approccio per gli ambienti di produzione.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -RequestType SingleCSR
      
  4. Esaminare l'output:

    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
    

Quando si è pronti, inviare il file con estensione req generato alla CA (interna o pubblica). La directory specificata dalla $outputDirectory variabile contiene le csr che devono essere inviate a una CA. La directory contiene anche, per il riferimento, una directory figlio contenente i file con estensione inf da usare durante la generazione di richieste di certificato. Assicurarsi che la CA generi certificati usando una richiesta generata che soddisfi i requisiti dell'hub di Azure Stack.

Passaggi successivi

Dopo aver ricevuto i certificati dall'autorità di certificazione, seguire la procedura descritta in Preparare i certificati PKI dell'hub di Azure Stack nello stesso sistema.