Condividi tramite


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

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 time sufficiente per testarli prima della distribuzione.

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

  • Certificati standard per una nuova distribuzione: scegliere Nuova distribuzione usando il Scegliere uno scenario di certificato CSR selettore nella parte superiore di questo articolo.
  • Certificati di rinnovo per una distribuzione esistente: scegliere Rinnovo usando lo scenario Scegli un certificato CSR nel selettore situato nell'intestazione di questo articolo.
  • Certificati PaaS (Platform-as-a-Service): può essere generato facoltativamente con certificati standard e di rinnovo. Per altre informazioni, vedere requisiti del certificato dell'infrastruttura a chiave pubblica (PKI) dell'hub di Azure Stack: certificati PaaS facoltativi.

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 trovarsi in un computer con Windows 10 o versione successiva o Windows Server 2016 o versione successiva.
  • Installare lo strumento di verifica dell'idoneità 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
    
  • Per il certificato sono necessari gli attributi seguenti:
    • Nome della regione
    • Nome di dominio completo esterno (FQDN)
    • Oggetto

Generare csr per i nuovi certificati di distribuzione

Nota

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

Per preparare i certificati CSR per i nuovi certificati PKI dell'hub di Azure Stack, seguire questa procedura:

  1. Aprire una sessione di PowerShell nel computer in cui è stato installato lo strumento Readiness Checker.

  2. Dichiarare le variabili seguenti:

    Nota

    <regionName>.<externalFQDN> costituisce 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 i CSP usando la stessa sessione di PowerShell. Le istruzioni sono specifiche del formato oggetto 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 csr completando una delle operazioni seguenti:

    • Per un ambiente di distribuzione di produzione , il primo script genererà le CSR per i certificati di distribuzione.

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      
    • Il secondo script, se necessario, usa il -IncludeContainerRegistry e genererà un 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à 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 modello di certificato non crittografato con gli attributi necessari dichiarati, aggiungere il parametro -LowPrivilege:

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

      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 è stato usato il parametro -LowPrivilege, nella sottodirectory C:\Users\username\Documents\AzureStackCSR è stato generato un file inf. Per 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 dei privilegi, quindi firmare ogni richiesta con certreq usando la sintassi seguente: certreq -new <example.inf> <example.req>. Completare quindi il resto del processo in tale 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 da Readiness Checker per determinare l'endpoint per estrarre gli attributi dai certificati esistenti. Se uno dei seguenti si applica al tuo scenario, è necessario usare lo strumento di selezione Scegliere lo scenario del certificato CSR all'inizio di questo articolo e selezionare la Nuova distribuzione versione dell'articolo:
    • Si vogliono modificare gli attributi dei certificati nell'endpoint, ad esempio l'oggetto, la lunghezza della chiave e l'algoritmo di firma.
    • Si vuole usare un soggetto del certificato che contiene solo l'attributo nome comune.
  • Verificare di disporre della 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 CSP per il rinnovo dei certificati PKI dell'hub di Azure Stack esistenti.

Generare CSRs

  1. Aprire una sessione di PowerShell nel computer in cui è stato installato lo strumento Readiness Checker.

  2. Dichiarare le variabili seguenti:

    Nota

    Readiness Checker usa stampEndpoint più una stringa anteposta 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 csr completando una o più delle operazioni seguenti:

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

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

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • Il terzo script genererà 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 un'unica richiesta di firma del certificato con nomi alternativi per soggetti multipli, aggiungere il parametro e il valore -RequestType SingleCSR.

      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 sei pronto, invia il file .req generato alla tua CA (interna o pubblica). La directory specificata dalla variabile $outputDirectory contiene i CRS che devono essere inviati a una CA. La directory contiene anche, per il riferimento, una directory figlio contenente i file inf da usare durante la generazione della richiesta di certificato. Assicurarsi che la CA generi certificati usando una richiesta generata che soddisfi i requisiti PKI 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.