Generieren von Zertifikatsignieranforderungen für Azure Stack Hub

Sie können mit dem Azure Stack Hub-Tool zur Bereitschaftsprüfung (Readiness Checker) Zertifikatsignieranforderungen (CSRs) erstellen, die für eine Azure Stack Hub-Bereitstellung oder die Verlängerung der Zertifikate einer vorhandenen Bereitstellung geeignet sind. Es ist wichtig, Zertifikate mit ausreichend Vorlaufzeit anzufordern, zu generieren und zu überprüfen, um sie vor der Bereitstellung testen zu können.

Das Tool wird verwendet, um die folgenden Zertifikate basierend auf Auswählen eines CSR-Zertifikatszenarios oben in diesem Artikel anzufordern:

  • Standardzertifikate für eine neue Bereitstellung: Wählen Sie Neue Bereitstellung aus. Nutzen Sie dabei die Informationen unter Auswählen eines CSR-Zertifikatszenarios weiter oben in diesem Artikel.
  • Verlängerungszertifikate für eine vorhandene Bereitstellung: Wählen Sie Verlängerung aus. Nutzen Sie dabei die Informationen unter Auswählen eines CSR-Zertifikatszenarios weiter oben in diesem Artikel.
  • PaaS-Zertifikate (Platform as a Service): können optional sowohl mit Standard- als auch mit Verlängerungszertifikaten generiert werden. Weitere Informationen finden Sie unter Azure Stack Hub-PKI-Zertifikatanforderungen (Public Key-Infrastruktur): optionale PaaS-Zertifikate.

Voraussetzungen

Bevor Sie Zertifikatsignieranforderungen für PKI-Zertifikate für eine Azure Stack Hub-Bereitstellung generieren, muss Ihr System die folgenden Voraussetzungen erfüllen:

  • Sie müssen auf einem Computer mit Windows 10 oder höher bzw. Windows Server 2016 oder höher arbeiten.
  • Führen Sie an einer PowerShell-Eingabeaufforderung (5.1 oder höher) das folgende Cmdlet aus, um das Azure Stack Hub-Tool zur Bereitschaftsprüfung (Readiness Checker) zu installieren:
         Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  • Sie benötigen die folgenden Attribute für Ihr Zertifikat:
    • Regionsname
    • Externer vollqualifizierter Domänenname (FQDN)
    • Subject

Generieren von CSRs für neue Bereitstellungszertifikate

Hinweis

Rechteerweiterungen sind erforderlich, um Zertifikatsignieranforderungen zu generieren. In eingeschränkten Umgebungen, in denen Rechteerweiterungen nicht möglich sind, können Sie dieses Tool verwenden, um Klartextvorlagendateien mit allen Informationen zu generieren, die für externe Azure Stack Hub-Zertifikate erforderlich sind. Anschließend müssen Sie diese Vorlagendateien in einer Sitzung mit erhöhten Rechten verwenden, um die Generierung des öffentlichen/privaten Schlüsselpaars abzuschließen. Weitere Informationen finden Sie unten.

Führen Sie die folgenden Schritte aus, um CSRs für neue PKI-Zertifikate für Azure Stack Hub vorzubereiten:

  1. Öffnen Sie eine PowerShell-Sitzung auf dem Computer, auf dem Sie das Tool zur Bereitschaftsprüfung installiert haben.

  2. Deklarieren Sie die folgenden Variablen:

    Hinweis

    <regionName>.<externalFQDN> bildet die Grundlage für die Erstellung aller externen DNS-Namen in Azure Stack Hub. Im folgenden Beispiel heißt das Portal 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
    

Generieren Sie nun die CSRs in derselben PowerShell-Sitzung. Die Anweisungen sind spezifisch für das Format des Antragstellers, das Sie unten auswählen:

Hinweis

Für die Zertifikatanforderung wird in der Zertifikatanforderung der erste DNS-Name des Azure Stack Hub-Diensts im Feld „CN“ konfiguriert.

  1. Deklarieren Sie einen Antragsteller, z. B.:

    $subject = "C=US,ST=Washington,L=Redmond,O=Microsoft,OU=Azure Stack Hub"
    
  1. Generieren Sie CSRs, indem Sie einen der folgenden Schritte durchführen:

    • Für eine Produktionsbereitstellungsumgebung generiert das erste Skript CSRs für Bereitstellungszertifikate:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      
    • Das zweite Skript verwendet bei Bedarf das -IncludeContainerRegistry und generiert eine CSR für Azure Container Registry gleichzeitig mit CSRs für Bereitstellungszertifikate:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
      
    • Das dritte Skript generiert CSRs für alle optionalen PaaS-Dienste, die Sie installiert haben:

      # 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 
      
    • Fügen Sie für Umgebungen mit geringen Rechten den Parameter -LowPrivilege hinzu, um eine Klartext-Zertifikatvorlagendatei mit den erforderlichen deklarierten Attributen zu generieren:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -LowPrivilege
      
    • Fügen Sie für Entwicklungs- und Testumgebungen den Parameter und Wert von -RequestType SingleCSR hinzu, um eine einzelne Zertifikatsignieranforderung mit alternativen Namen mit mehreren Antragstellern zu generieren.

      Wichtig

      Es wird nicht empfohlen, diesen Ansatz für Produktionsumgebungen zu verwenden.

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

Führen Sie die letzten Schritte aus:

  1. Überprüfen Sie die Ausgabe:

    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. Wenn der Parameter -LowPrivilege verwendet wurde, wurde eine INF-Datei im Unterverzeichnis C:\Users\username\Documents\AzureStackCSR generiert. Zum Beispiel:

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

    Kopieren Sie die Datei in ein System, in dem die Rechteerweiterung zulässig ist, und signieren Sie dann jede Anforderung mit certreq, indem Sie die folgende Syntax verwenden: certreq -new <example.inf> <example.req>. Schließen Sie restlichen Prozess in diesem System dann mit erhöhten Rechten ab, da es hierfür erforderlich ist, das von der Zertifizierungsstelle signierte neue Zertifikat dem privaten Schlüssel zuzuordnen, der im System mit Rechteerweiterung generiert wird.

  • Die Region und der Name der externen Domäne (FQDN) Ihres Systems werden bei der Bereitschaftsprüfung verwendet, um den Endpunkt zum Extrahieren von Attributen aus Ihren vorhandenen Zertifikaten zu ermitteln. Wenn eine der folgenden Bedingungen für Ihr Szenario gilt, wählen Sie stattdessen mithilfe der Informationen unter Auswählen eines CSR-Zertifikatszenarios weiter oben in diesem Artikel die Version von Neue Bereitstellung für diesen Artikel aus:
    • Sie möchten die Attribute von Zertifikaten am Endpunkt ändern, z. B. Antragsteller, Schlüssellänge und Signaturalgorithmus.
    • Sie möchten einen Antragsteller für das Zertifikat verwenden, der nur das CN-Attribut enthält.
  • Vergewissern Sie sich vorab, dass Sie über HTTPS-Konnektivität für Ihr Azure Stack Hub-System verfügen.

Generieren von CSRs für Verlängerungszertifikate

In diesem Abschnitt finden Sie Informationen zum Vorbereiten von CSRs für die Verlängerung bestehender Azure Stack Hub-PKI-Zertifikate.

Generieren von CSRs

  1. Öffnen Sie eine PowerShell-Sitzung auf dem Computer, auf dem Sie das Tool zur Bereitschaftsprüfung installiert haben.

  2. Deklarieren Sie die folgenden Variablen:

    Hinweis

    Die Bereitschaftsprüfung verwendet stampEndpoint eine vorangestellte Zeichenfolge, um vorhandene Zertifikate zu finden. portal.east.azurestack.contoso.com wird beispielsweise für Bereitstellungszertifikate, sso.appservices.east.azurestack.contoso.com für App-Dienstzertifikate usw. verwendet.

    $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. Generieren Sie CSRs, indem Sie einen oder mehrere der folgenden Schritte durchführen:

    • Für eine Produktionsumgebung generiert das erste Skript CSRs für Bereitstellungszertifikate:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
    • Das zweite Skript verwendet bei Bedarf das -IncludeContainerRegistry und generiert eine CSR für Azure Container Registry gleichzeitig mit CSRs für Bereitstellungszertifikate:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • Das dritte Skript generiert CSRs für alle optionalen PaaS-Dienste, die Sie installiert haben:

      # 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 
      
    • Fügen Sie für Entwicklungs- und Testumgebungen den Parameter und Wert von -RequestType SingleCSR hinzu, um eine einzelne Zertifikatsignieranforderung mit alternativen Namen mit mehreren Antragstellern zu generieren.

      Wichtig

      Es wird nicht empfohlen, diesen Ansatz für Produktionsumgebungen zu verwenden.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -RequestType SingleCSR
      
  4. Überprüfen Sie die Ausgabe:

    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
    

Übermitteln Sie, wenn Sie fertig sind, die generierte REQ-Datei an Ihre (interne oder öffentliche) Zertifizierungsstelle. Das durch die $outputDirectory-Variable angegebene Verzeichnis enthält die CSRs, die an eine Zertifizierungsstelle übermittelt werden müssen. Das Verzeichnis enthält zu Ihrer Referenz auch ein Unterverzeichnis, das die bei der Generierung von Zertifikatanforderungen verwendeten INF-Dateien enthält. Vergewissern Sie sich, dass Ihre Zertifizierungsstelle Zertifikate mit Ihrer generierten Anforderung erstellt, die die Azure Stack Hub-PKI-Voraussetzungen erfüllen.

Nächste Schritte

Nachdem Sie Ihre Zertifikate von Ihrer Zertifizierungsstelle erhalten haben, befolgen Sie auf demselben System die Schritte unter Vorbereiten von Azure Stack Hub-PKI-Zertifikaten.