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:

  1. Installeer AzsReadinessChecker vanaf een PowerShell-prompt (5.1 of hoger) door de volgende cmdlet uit te voeren:

        Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  2. Maak 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.pfx
      • C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
      • C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
  3. Wijzig in het PowerShell-venster de waarden van RegionNameFQDN en IdentitySystem de 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 AAD  
    
  4. Controleer 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 Completed
    
    

    Als 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.com
    
    

    Elke 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 -CertificateType en -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.