PKI-certificaten van Azure Stack Hub valideren
Het hulpprogramma Gereedheidscontrole van Azure Stack Hub dat in dit artikel wordt beschreven, is beschikbaar vanuit de PowerShell Gallery. Gebruik het hulpprogramma om te controleren of gegenereerde PKI-certificaten (Public Key Infrastructure) geschikt zijn voor pre-implementatie. Valideer certificaten door voldoende tijd te laten om certificaten te testen en opnieuw uit te voeren, indien nodig.
Het hulpprogramma Gereedheidscontrole voert de volgende certificaatvalidaties uit:
- PFX-parseren
Controleert op geldig PFX-bestand, correct wachtwoord en of de openbare informatie wordt beveiligd door het wachtwoord. -
vervaldatum
Controleert op minimale geldigheid van zeven dagen. -
Handtekening-algoritme
Controleert of het handtekeningalgoritme niet SHA1 is. -
persoonlijke sleutel
Controleert of de persoonlijke sleutel aanwezig is en wordt geëxporteerd met het kenmerk lokale computer. -
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 ondersteunings-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 volgorde 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.
Voorwaarden
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 na de voorbereidingsinstructies.
- DeploymentData.json.
- Windows 10 of Windows Server 2016.
Certificaatvalidatie van kernservices uitvoeren
Gebruik deze stappen om de PKI-certificaten van Azure Stack Hub te valideren voor implementatie en roulatie van geheimen:
Installeer AzsReadinessChecker vanaf een PowerShell-prompt (5.1 of hoger) door de volgende cmdlet uit te voeren:
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
Maak de structuur van de certificaatmap. In het onderstaande voorbeeld kunt u
<C:\Certificates\Deployment>
wijzigen in een nieuw mappad van uw keuze.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.pfx
C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
C:\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
RegionName
,FQDN
enIdentitySystem
geschikt 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 AAD
Controleer de uitvoer en zorg ervoor dat alle certificaten alle tests doorstaan. 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 Completed
Als u certificaten voor andere Azure Stack Hub-services wilt valideren, wijzigt u de waarde voor
-CertificatePath
. 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.com
Elke map moet één PFX-bestand voor het certificaattype bevatten. Als een certificaattype vereisten voor meerdere certificaattypes heeft, worden geneste mappen voor elk afzonderlijk certificaat verwacht en moeten naamgevoelig zijn. De volgende code toont een voorbeeldmap/certificaatstructuur voor alle certificaattypen en de juiste waarde voor
-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
Bekende problemen
Symptoom: Tests worden overgeslagen
Oorzaak: AzsReadinessChecker slaat bepaalde tests over als niet aan een afhankelijkheid wordt voldaan:
Andere certificaten worden overgeslagen indien 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 de AzsReadinessChecker- in sommige talen niet controleren op HTTP CDP.
resolutie: 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 beheerextensie | 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 roulatie van geheimen na de implementatie.
- Voor implementatie moet u uw certificaten veilig overdragen aan uw implementatie-engineer, zodat ze deze kunnen kopiëren naar de host van de virtuele machine van de implementatie, zoals opgegeven in PKI-vereisten voor Azure Stack Hub- verplichte certificaten.
- Voor geheimrotatie, zie Geheimen roteren in Azure Stack Hub. Het rouleren van certificaten van waarde-toevoegende resourceproviders wordt behandeld in de sectie Externe geheimen rouleren.