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 Gallery. Gebruik het hulpprogramma om te controleren of gegenereerde PKI-certificaten (Public Key Infrastructure) geschikt zijn voor pre-implementatie. Valideer certificaten door voldoende tijd over te laten om certificaten te testen en opnieuw uit te geven, indien nodig.
Het hulpprogramma Gereedheidscontrole voert de volgende certificaatvalidaties uit:
-
PFX parseren
Controleert op een geldig PFX-bestand, het juiste wachtwoord en of de openbare informatie wordt beveiligd door het wachtwoord. -
Vervaldatum
Controleert op de minimale geldigheidsduur 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 of 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 en controleert of de volgorde juist is. -
Andere certificaten
Zorg ervoor dat er geen andere certificaten in PFX zijn verpakt dan het relevante leaf-certificaat en de bijbehorende keten.
Belangrijk
Het PKI-certificaat is een PFX-bestand en het wachtwoord moet 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:
- Microsoft Azure Stack Hub-gereedheidscontrole.
- 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 rotatie 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 een nieuw mappad naar keuze gebruiken
<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.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
enFQDN
IdentitySystem
die geschikt zijn 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 voor een certificaattype vereisten voor meerdere certificaten gelden, worden geneste mappen voor elk afzonderlijk certificaat verwacht en zijn ze naamgevoelig. In de volgende code ziet u een voorbeeld van een map/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 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 er een HTTP CDP is geschreven naar x509-extensies.
Oorzaak: Momenteel kan de 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> |
Beheer-extensiehost | wildcard_adminhosting_<region>_<externalFQDN> |
Beheerportal | adminportal_<region>_<externalFQDN> |
ARM-Beheer | adminmanagement_<region>_<externalFQDN> |
OPENBARE ARM | 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, bent u klaar om ze te gebruiken voor azure Stack Hub-implementatie of roulatie van geheimen na de implementatie.
- Voor de implementatie moet u uw certificaten veilig overdragen aan uw implementatietechnicus, zodat deze deze kan kopiëren naar de host van de virtuele implementatiemachine, zoals opgegeven in PKI-vereisten voor Azure Stack Hub - verplichte certificaten.
- Zie Geheimen roteren in Azure Stack Hub voor het rouleren van geheimen. Rotatie van resourceprovidercertificaten voor het toevoegen van waarde wordt behandeld in de sectie Externe geheimen roteren.