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 certifikaten genom att lämna tillräckligt med tid för att testa och utfärda certifikat på nytt om det behövs.
Verktyget Beredskapskontroll utför följande certifikatvalidering:
-
Parsa PFX
Söker efter en giltig PFX-fil, rätt lösenord och om den offentliga informationen skyddas av lösenordet. -
Utgångsdatum
Söker efter minsta giltighet på sju dagar. -
Signaturalgoritm
Kontrollerar att signaturalgoritmen inte är SHA1. -
Privat nyckel
Kontrollerar att den privata nyckeln finns och exporteras med det lokala datorattributet. -
Certifikatkedja
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. -
Kedjeordning
Kontrollerar ordningen på de andra certifikaten som verifierar att ordern är korrekt. -
Andra certifikat
Se till att inga andra certifikat har paketerats i PFX förutom det relevanta lövcertifikatet och dess kedja.
Viktigt
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 exporteras enligt förberedelseinstruktionerna.
- DeploymentData.json.
- Windows 10 eller Windows Server 2016.
Utför certifikatsverifiering 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.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}
Anteckning
AD FS och Graph krävs om du använder AD FS som identitetssystem. 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. 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. Exempel:
I PowerShell-fönstret ändrar du värdena
RegionName
för ochFQDN
IdentitySystem
är 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. 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
. 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: Tester hoppas över
Orsak: AzsReadinessChecker hoppar över vissa tester om ett beroende inte uppfylls:
Andra certifikat hoppas ö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: HTTP CRL-kontrollen misslyckas trots att en HTTP CDP har skrivits till x509-tillägg.
Orsak: AzsReadinessChecker kan för närvarande inte söka efter HTTP CDP på vissa språk.
Lösning: Kör validering med OS-språket inställt på EN-US.
Certifikat
Katalog | Certifikat |
---|---|
ACSBlob | wildcard_blob_<region>_<externalFQDN> |
ACSQueue | wildcard_queue_<region>_<externalFQDN> |
ACSTable | wildcard_table_<region>_<externalFQDN> |
Admin-tilläggsvärd | wildcard_adminhosting_<region>_<externalFQDN> |
Administratörsportal | adminportal_<region>_<externalFQDN> |
ARM Admin | adminmanagement_<region>_<externalFQDN> |
OFFENTLIG ARM | 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 kraven i Azure Stack Hub PKI – Obligatoriska certifikat.
- Hemlig rotation finns i Rotera hemligheter i Azure Stack Hub. Rotation av värdetilläggsresursprovidercertifikat beskrivs i avsnittet Rotera externa hemligheter.