PKI-certificaten van Azure Stack Hub valideren
Het hulpprogramma Gereedheidscontrole van Azure Stack Hub dat in dit artikel wordt beschreven, is beschikbaar in de PowerShell-galerie. Gebruik het hulpprogramma om te valideren dat gegenereerde PKI-certificaten (Public Key Infrastructure) geschikt zijn voor pre-implementatie. Valideer certificaten door zo nodig voldoende tijd te laten om certificaten te testen en opnieuw uit te voeren.
Het hulpprogramma Gereedheidscontrole voert de volgende certificaatvalidaties uit:
- PFX parseren
Controleert op geldig PFX-bestand, juiste wachtwoord en of de openbare informatie wordt beveiligd door het wachtwoord. - Vervaldatum
Controleert op minimale geldigheid van zeven dagen. - Handtekeningalgoritmen
Controleert of het handtekeningalgoritme geen SHA1 is. - Persoonlijke sleutel
Controleert of de persoonlijke sleutel aanwezig is en wordt geëxporteerd met het kenmerk van de lokale machine. - Certificaatketen
Controleert of de certificaatketen intact is, inclusief een controle op zelfondertekende certificaten. - DNS-namen
Controleert of het SAN relevante DNS-namen bevat voor elk eindpunt of als er een ondersteunend jokerteken aanwezig is. - Sleutelgebruik
Controleert of het sleutelgebruik een digitale handtekening en sleutelcodering bevat en controleert of uitgebreid sleutelgebruik serververificatie en clientverificatie bevat. - Sleutelgrootte
Controleert of de sleutelgrootte 2048 of groter is. - Ketenvolgorde
Controleert de volgorde van de andere certificaten die valideren dat de bestelling juist is. - Andere certificaten
Zorg ervoor dat er geen andere certificaten zijn verpakt in PFX dan het relevante leaf-certificaat en de bijbehorende keten.
Belangrijk
Het PKI-certificaat is een PFX-bestand en wachtwoord moeten worden behandeld als gevoelige informatie.
Vereisten
Uw systeem moet voldoen aan de volgende vereisten voordat U PKI-certificaten valideert voor een Azure Stack Hub-implementatie:
- Gereedheidscontrole voor Microsoft Azure Stack Hub.
- SSL-certificaat(en) geëxporteerd volgens de voorbereidingsinstructies.
- DeploymentData.json.
- Windows 10 of Windows Server 2016.
Validatie uitvoeren van coreservicecertificaten
Gebruik deze stappen om de PKI-certificaten van Azure Stack Hub te valideren voor implementatie en geheime rotatie:
Installeer AzsReadinessChecker vanaf een PowerShell-prompt (5.1 of hoger) door de volgende cmdlet uit te voeren:
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrereleaseMaak de structuur van de certificaatmap. In het onderstaande voorbeeld kunt u naar een nieuw mappad van uw keuze gaan
<C:\Certificates\Deployment>.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}Notitie
AD FS en Graph zijn vereist als u AD FS als uw identiteitssysteem gebruikt. Bijvoorbeeld:
$directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'- Plaats uw certificaat(en) in de juiste mappen die u in de vorige stap hebt gemaakt. Bijvoorbeeld:
C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfxC:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfxC:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- Plaats uw certificaat(en) in de juiste mappen die u in de vorige stap hebt gemaakt. Bijvoorbeeld:
Wijzig in het PowerShell-venster de waarden van
RegionNameFQDNenIdentitySystemde juiste waarde voor de Azure Stack Hub-omgeving en voer de volgende cmdlet uit:$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Invoke-AzsHubDeploymentCertificateValidation -CertificatePath C:\Certificates\Deployment -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AADControleer de uitvoer en zorg ervoor dat alle certificaten alle tests doorgeven. Bijvoorbeeld:
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 CompletedAls u certificaten voor andere Azure Stack Hub-services wilt valideren, wijzigt u de waarde voor
-CertificateType. Bijvoorbeeld:# 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.comElke map moet één PFX-bestand voor het certificaattype bevatten. Als een certificaattype vereisten voor meerdere certificaten heeft, worden geneste mappen voor elk afzonderlijk certificaat verwacht en naamgevoelig. De volgende code toont een voorbeeldmap/certificaatstructuur voor alle certificaattypen en de juiste waarde voor
-CertificateTypeen-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
Bekende problemen
Symptoom: Tests worden overgeslagen
Oorzaak: AzsReadinessChecker slaat bepaalde tests over als niet aan een afhankelijkheid wordt voldaan:
Andere certificaten worden overgeslagen als de certificaatketen mislukt.
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
Oplossing: volg de richtlijnen van het hulpprogramma in de sectie details onder elke set tests voor elk certificaat.
Symptoom: HTTP CRL-controle mislukt ondanks dat een HTTP CDP naar x509-extensies is geschreven.
Oorzaak: Momenteel kan AzsReadinessChecker in sommige talen niet controleren op HTTP CDP.
Oplossing: Voer validatie uit met de taal van het besturingssysteem ingesteld op EN-US.
Certificaten
| Directory | Certificaat |
|---|---|
| ACSBlob | wildcard_blob_<region>_<externalFQDN> |
| ACSQueue | wildcard_queue_<region>_<externalFQDN> |
| ACSTable | wildcard_table_<region>_<externalFQDN> |
| Host van beheerdersextensie | wildcard_adminhosting_<region>_<externalFQDN> |
| Beheerportal | adminportal_<region>_<externalFQDN> |
| ARM-beheerder | adminmanagement_<region>_<externalFQDN> |
| ARM Openbaar | management_<region>_<externalFQDN> |
| KeyVault | wildcard_vault_<region>_<externalFQDN> |
| KeyVaultInternal | wildcard_adminvault_<region>_<externalFQDN> |
| Host van openbare extensie | wildcard_hosting_<region>_<externalFQDN> |
| Openbare portal | portal_<region>_<externalFQDN> |
Volgende stappen
Zodra uw certificaten zijn gevalideerd door AzsReadinessChecker, kunt u deze gebruiken voor azure Stack Hub-implementatie of na de implementatie van geheimen.
- Voor implementatie moet u uw certificaten veilig overdragen aan uw implementatietechnicus, zodat ze ze kunnen kopiëren naar de virtuele machine van de implementatie, host zoals opgegeven in PKI-vereisten voor Azure Stack Hub- verplichte certificaten.
- Raadpleeg geheimen roteren in Azure Stack Hub voor geheimrotatie. Het rouleren van certificaten van resourceproviders voor waarde-toevoegen wordt behandeld in de sectie Externe geheimen draaien.