Überprüfen von Azure Stack Hub-PKI-Zertifikaten
Das in diesem Artikel beschriebene Tool „Azure Stack Hub Readiness Checker“ steht im PowerShell-Katalog zur Verfügung. Mit diesem Tool können Sie sich vergewissern, dass die generierten PKI-Zertifikate (Public Key-Infrastruktur) für die Vorabbereitstellung geeignet sind. Planen Sie bei der Zertifikatüberprüfung genügend Zeit ein, um die Zertifikate testen und ggf. neu ausstellen zu können.
Das Readiness Checker-Tool führt folgende Zertifikatüberprüfungen durch:
- PFX analysieren
Sucht nach einer gültigen PFX-Datei und einem korrekten Kennwort und überprüft, ob öffentliche Informationen durch das Kennwort geschützt sind. - Ablaufdatum
Überprüft die Mindestgültigkeit von sieben Tagen. - Signaturalgorithmus
Überprüft, ob SHA1 als Signaturalgorithmus verwendet wird (was nicht der Fall sein darf). - Privater Schlüssel
Überprüft, ob der private Schlüssel vorhanden ist und mit dem Attribut „Lokaler Computer“ exportiert wird. - Vertrauenskette
Überprüft, ob die Vertrauenskette intakt ist (auch für selbstsignierte Zertifikate). - DNS-Namen
Überprüft, ob das SAN relevante DNS-Namen für die einzelnen Endpunkte enthält oder ob ein unterstützender Platzhalter vorhanden ist. - Schlüsselverwendung
Überprüft, ob die Schlüsselverwendung eine digitale Signatur und eine Schlüsselchiffrierung enthält und ob die erweiterte Schlüsselverwendung Serverauthentifizierung und Clientauthentifizierung enthält. - Schlüsselgröße
Überprüft, ob die Schlüsselgröße mindestens 2.048 beträgt. - Kettenreihenfolge
Überprüft, ob die Reihenfolge der anderen Zertifikate, aus denen sich die Kette zusammensetzt, korrekt ist. - Andere Zertifikate
Stellt sicher, dass die PFX-Datei nur das relevante Blattzertifikat und dessen Kette enthält und keine anderen Zertifikate in die Datei gepackt wurden.
Wichtig
Das PKI-Zertifikat ist eine PFX-Datei, und das Kennwort muss vertraulich behandelt werden.
Voraussetzungen
Zur Überprüfung von PKI-Zertifikaten für eine Azure Stack Hub-Bereitstellung muss Ihr System folgende Voraussetzungen erfüllen:
- Microsoft Azure Stack Hub Readiness Checker
- Mindestens ein SSL-Zertifikat, das gemäß den Vorbereitungsanweisungen exportiert wurde
- DeploymentData.json
- Windows 10 oder Windows Server 2016
Durchführen der Zertifikatüberprüfung für Kerndienste
Gehen Sie wie folgt vor, um die Azure Stack Hub-PKI-Zertifikate für die Bereitstellung und Geheimnisrotation zu überprüfen:
Führen Sie an einer PowerShell-Eingabeaufforderung (5.1 oder höher) das folgende Cmdlet aus, um AzsReadinessChecker zu installieren:
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
Erstellen Sie die Zertifikatverzeichnisstruktur. Im folgenden Beispiel können Sie für
<C:\Certificates\Deployment>
einen neuen Verzeichnispfad Ihrer Wahl angeben.New-Item C:\Certificates\Deployment -ItemType Directory $directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal' $destination = 'C:\Certificates\Deployment' $directories | % { New-Item -Path (Join-Path $destination $PSITEM) -ItemType Directory -Force}
Hinweis
Wenn Sie AD FS als Identitätssystem verwenden, sind AD FS und Graph erforderlich. Beispiel:
$directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
- Platzieren Sie Ihre Zertifikate in den entsprechenden Verzeichnissen aus dem vorherigen Schritt. Beispiel:
C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- Platzieren Sie Ihre Zertifikate in den entsprechenden Verzeichnissen aus dem vorherigen Schritt. Beispiel:
Ändern Sie im PowerShell-Fenster die Werte von
RegionName
,FQDN
undIdentitySystem
gemäß der Azure Stack Hub-Umgebung, und führen Sie das folgende Cmdlet aus:$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Invoke-AzsHubDeploymentCertificateValidation -CertificatePath C:\Certificates\Deployment -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
Überprüfen Sie die Ausgabe, und vergewissern Sie sich, dass alle Tests für alle Zertifikate erfolgreich waren. Beispiel:
Invoke-AzsHubDeploymentCertificateValidation v1.2005.1286.272 started. Testing: KeyVaultInternal\KeyVaultInternal.pfx Thumbprint: E86699****************************4617D6 PFX Encryption: OK Expiry Date: OK Signature Algorithm: OK DNS Names: OK Key Usage: OK Key Length: OK Parse PFX: OK Private Key: OK Cert Chain: OK Chain Order: OK Other Certificates: OK Testing: ARM Public\ARMPublic.pfx Thumbprint: 8DC4D9****************************69DBAA PFX Encryption: OK Expiry Date: OK Signature Algorithm: OK DNS Names: OK Key Usage: OK Key Length: OK Parse PFX: OK Private Key: OK Cert Chain: OK Chain Order: OK Other Certificates: OK Testing: Admin Portal\AdminPortal.pfx Thumbprint: 6F9055****************************4AC0EA PFX Encryption: OK Expiry Date: OK Signature Algorithm: OK DNS Names: OK Key Usage: OK Key Length: OK Parse PFX: OK Private Key: OK Cert Chain: OK Chain Order: OK Other Certificates: OK Testing: Public Portal\PublicPortal.pfx Log location (contains PII): C:\Users\[*redacted*]\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessChecker.log Report location (contains PII): C:\Users\[*redacted*]\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessCheckerReport.json Invoke-AzsHubDeploymentCertificateValidation Completed
Um Zertifikate für andere Azure Stack Hub-Dienste zu überprüfen, ändern Sie den Wert für
-CertificateType
. Beispiel:# App Services Invoke-AzsHubAppServicesCertificateValidation -CertificatePath C:\Certificates\AppServices -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com # DBAdapter Invoke-AzsHubDBAdapterCertificateValidation -CertificatePath C:\Certificates\DBAdapter -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com # EventHubs Invoke-AzsHubEventHubsCertificateValidation -CertificatePath C:\Certificates\EventHubs -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com
Jeder Ordner sollte eine einzelne PFX-Datei für den Zertifikattyp enthalten. Wenn für einen Zertifikattyp mehrere Zertifikatanforderungen vorliegen, werden für jedes einzelne Zertifikat geschachtelte Ordner mit eindeutigen Namen erwartet. Der folgende Code zeigt ein Beispiel für eine Ordner-/Zertifikatstruktur für alle Zertifikattypen und den entsprechenden Wert für
-CertificateType
und-CertificatePath
.C:\>tree c:\SecretStore /A /F Folder PATH listing Volume serial number is 85AE-DF2E C:\SECRETSTORE \---AzureStack +---CertificateRequests \---Certificates +---AppServices # Invoke-AzsCertificateValidation ` | +---API # -CertificateType AppServices ` | | api.pfx # -CertificatePath C:\Certificates\AppServices | | | +---DefaultDomain | | wappsvc.pfx | | | +---Identity | | sso.pfx | | | \---Publishing | ftp.pfx | +---DBAdapter # Invoke-AzsCertificateValidation ` | dbadapter.pfx # -CertificateType DBAdapter ` | # -CertificatePath C:\Certificates\DBAdapter | +---Deployment # Invoke-AzsCertificateValidation ` | +---ACSBlob # -CertificateType Deployment ` | | acsblob.pfx # -CertificatePath C:\Certificates\Deployment | | | +---ACSQueue | | acsqueue.pfx ./. ./. ./. ./. ./. ./. ./. <- Deployment certificate tree trimmed. | \---Public Portal | portal.pfx | \---EventHubs # Invoke-AzsCertificateValidation ` eventhubs.pfx # -CertificateType EventHubs ` # -CertificatePath C:\Certificates\EventHubs
Bekannte Probleme
Symptom: Tests werden übersprungen.
Ursache: AzsReadinessChecker überspringt bestimmte Tests, wenn eine Abhängigkeit nicht erfüllt ist:
„Andere Zertifikate“ wird übersprungen, wenn „Vertrauenskette“ nicht erfolgreich ist.
Testing: ACSBlob\singlewildcard.pfx Read PFX: OK Signature Algorithm: OK Private Key: OK Cert Chain: OK DNS Names: Fail Key Usage: OK Key Size: OK Chain Order: OK Other Certificates: Skipped Details: The certificate records '*.east.azurestack.contoso.com' do not contain a record that is valid for '*.blob.east.azurestack.contoso.com'. Please refer to the documentation for how to create the required certificate file. The Other Certificates check was skipped because Cert Chain and/or DNS Names failed. Follow the guidance to remediate those issues and recheck. Log location (contains PII): C:\Users\username\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessChecker.log Report location (contains PII): C:\Users\username\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessCheckerReport.json Invoke-AzsCertificateValidation Completed
Lösung: Folgen Sie den Toolanweisungen im Detailabschnitt unter den Tests des jeweiligen Zertifikats.
Symptom: Die HTTP-CRL-Prüfung schlägt fehl, obwohl ein HTTP-CDP in x509-Erweiterungen geschrieben wurde.
Ursache: Zurzeit kann mit AzsReadinessChecker in einigen Sprachen nicht auf einen HTTP-CDP überprüft werden.
Lösung: Führen Sie die Validierung mit der Betriebssystemsprache „EN-US“ aus.
Zertifikate
Verzeichnis | Zertifikat |
---|---|
ACSBlob | wildcard_blob_<region>_<externalFQDN> |
ACSQueue | wildcard_queue_<region>_<externalFQDN> |
ACSTable | wildcard_table_<region>_<externalFQDN> |
Administratorerweiterungshost | wildcard_adminhosting_<region>_<externalFQDN> |
Verwaltungsportal | adminportal_<region>_<externalFQDN> |
ARM Admin | adminmanagement_<region>_<externalFQDN> |
ARM Public | management_<region>_<externalFQDN> |
KeyVault | wildcard_vault_<region>_<externalFQDN> |
KeyVaultInternal | wildcard_adminvault_<region>_<externalFQDN> |
Öffentlicher Erweiterungshost | wildcard_hosting_<region>_<externalFQDN> |
Öffentliches Portal | portal_<region>_<externalFQDN> |
Nächste Schritte
Nach der Überprüfung durch AzsReadinessChecker können Sie die Zertifikate für Ihre Azure Stack Hub-Bereitstellung oder die Geheimnisrotation nach der Bereitstellung verwenden.
- Übertragen Sie Ihre Zertifikate für die Bereitstellung auf sichere Weise an Ihren Bereitstellungstechniker, damit dieser sie auf den virtuellen Bereitstellungscomputer kopieren und wie unter Zertifikatanforderungen für Azure Stack Hub-PKI (Public Key-Infrastruktur) – Erforderliche Zertifikate beschrieben hosten kann.
- Informationen zur Geheimnisrotation finden Sie unter Rotieren von Geheimnissen in Azure Stack Hub. Die Rotation von Ressourcenanbieterzertifikaten mit Mehrwert wird im Abschnitt „Rotieren externer Geheimnisse“ behandelt.