Verifiera Azure Stack Hub PKI-certifikat
Verktyget Beredskapskontroll för Azure Stack Hub som beskrivs i den här artikeln är tillgängligt från PowerShell-galleriet. Använd verktyget för att verifiera att genererade PKI-certifikat (Public Key Infrastructure) är lämpliga för fördistribution. Verifiera certifikat genom att lämna tillräckligt med tid för att testa och återutfärda certifikat om det behövs.
Verktyget Beredskapskontroll utför följande certifikatverifieringar:
-
Parsa PFX
Söker efter en giltig PFX-fil, rätt lösenord och om den offentliga informationen skyddas av lösenordet. -
förfallodatum
Kontrollerar minst giltighet på sju dagar. -
Signaturalgoritm
Kontrollerar att signaturalgoritmen inte är SHA1. -
privat nyckel
Kontrollerar att den privata nyckeln finns och exporteras med attributet lokal dator. -
Cert-kedja
Kontrollerar att certifikatkedjan är intakt, inklusive en kontroll av självsignerade certifikat. -
DNS-namn
Kontrollerar att SAN innehåller relevanta DNS-namn för varje slutpunkt eller om det finns ett stöd för jokertecken. -
Nyckelanvändning
Kontrollerar om nyckelanvändningen innehåller en digital signatur och nyckelchiffrering och kontrollerar om förbättrad nyckelanvändning innehåller serverautentisering och klientautentisering. -
Nyckelstorlek
Kontrollerar om nyckelstorleken är 2048 eller större. -
Kedjeorder
Kontrollerar ordningen på de andra certifikaten som verifierar att beställningen är korrekt. -
Andra certifikat
Se till att inga andra certifikat utöver det relevanta lövcertifikatet och dess kedja har paketerats i PFX.
Viktig
PKI-certifikatet är en PFX-fil och lösenordet ska behandlas som känslig information.
Förutsättningar
Systemet bör uppfylla följande krav innan PKI-certifikat verifieras för en Azure Stack Hub-distribution:
- Beredskapskontroll för Microsoft Azure Stack Hub.
- SSL-certifikat som har exporterats enligt de förberedelseinstruktionerna.
- DeploymentData.json.
- Windows 10 eller Windows Server 2016.
Utföra certifikatverifiering för kärntjänster
Använd de här stegen för att verifiera Azure Stack Hub PKI-certifikaten för distribution och hemlig rotation:
Installera AzsReadinessChecker från en PowerShell-prompt (5.1 eller senare) genom att köra följande cmdlet:
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
Skapa certifikatkatalogstrukturen. I exemplet nedan kan du ändra
<C:\Certificates\Deployment>
till en ny katalogsökväg som du väljer.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}
Notera
AD FS och Graph krävs om du använder AD FS som identitetssystem. Till exempel:
$directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
- Placera dina certifikat i lämpliga kataloger som skapades i föregående steg. Till exempel:
C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- Placera dina certifikat i lämpliga kataloger som skapades i föregående steg. Till exempel:
I PowerShell-fönstret ändrar du värdena för
RegionName
,FQDN
ochIdentitySystem
lämpliga för Azure Stack Hub-miljön och kör följande cmdlet:$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Invoke-AzsHubDeploymentCertificateValidation -CertificatePath C:\Certificates\Deployment -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
Kontrollera utdata och se till att alla certifikat klarar alla tester. Till exempel:
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
Om du vill verifiera certifikat för andra Azure Stack Hub-tjänster ändrar du värdet för
-CertificatePath
. Till exempel:# 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
Varje mapp ska innehålla en enda PFX-fil för certifikattypen. Om en certifikattyp har krav på flera certifikat förväntas kapslade mappar för varje enskilt certifikat och namnkänsliga. Följande kod visar en exempelmapp/certifikatstruktur för alla certifikattyper och lämpligt värde för
-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 # -CertificatePath C:\Certificates\AppServices | | api.pfx | | | +---DefaultDomain | | wappsvc.pfx | | | +---Identity | | sso.pfx | | | \---Publishing | ftp.pfx | +---DBAdapter # Invoke-AzsCertificateValidation ` | dbadapter.pfx # -CertificatePath C:\Certificates\DBAdapter | | +---Deployment # Invoke-AzsCertificateValidation ` | +---ACSBlob # -CertificatePath C:\Certificates\Deployment | | acsblob.pfx | | | +---ACSQueue | | acsqueue.pfx ./. ./. ./. ./. ./. ./. ./. <- Deployment certificate tree trimmed. | \---Public Portal | portal.pfx | \---EventHubs # Invoke-AzsCertificateValidation ` eventhubs.pfx # -CertificatePath C:\Certificates\EventHubs
Kända problem
Symptom: Testerna skippas
Orsak: AzsReadinessChecker hoppar över vissa tester om ett beroende inte uppfylls:
Andra certifikat hoppar över om certifikatkedjan misslyckas.
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ösning: Följ verktygets vägledning i informationsavsnittet under varje uppsättning tester för varje certifikat.
Symptom: Kontroll av HTTP CRL misslyckas även om en HTTP CDP har skrivits in i x509-tillägg.
Orsak: För närvarande kan AzsReadinessChecker inte söka efter HTTP CDP på vissa språk.
Resolution: Kör validering med OS-språk inställt på EN-US.
Certifikaten
Katalog | Intyg |
---|---|
ACSBlob | wildcard_blob_<region>_<externalFQDN> |
ACSQueue | wildcard_queue_<region>_<externalFQDN> |
ACSTable | wildcard_table_<region>_<externalFQDN> |
Värd för administratörstillägg | wildcard_adminhosting_<region>_<externalFQDN> |
Administratörsportal | adminportal_<region>_<externalFQDN> |
ARM-administratör | adminmanagement_<region>_<externalFQDN> |
ARM OFFENTLIG | management_<region>_<externalFQDN> |
KeyVault | wildcard_vault_<region>_<externalFQDN> |
KeyVaultInternal | wildcard_adminvault_<region>_<externalFQDN> |
Värd för offentligt tillägg | wildcard_hosting_<region>_<externalFQDN> |
Offentlig portal | portal_<region>_<externalFQDN> |
Nästa steg
När dina certifikat har verifierats av AzsReadinessChecker är du redo att använda dem för Azure Stack Hub-distribution eller hemlig rotation efter distributionen.
- För distribution överför du certifikaten på ett säkert sätt till distributionsteknikern så att de kan kopiera dem till den virtuella distributionsdatorns värd enligt Krav för Azure Stack Hub PKI – Obligatoriska certifikat.
- Information om hemlig rotation finns i Rotera hemligheter i Azure Stack Hub. Rotation av certifikat för resursprovider för värdetillägg beskrivs i avsnittet Rotera externa hemligheter.