Dela via


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 certifikat genom att lämna tillräckligt med tid för att testa och återutfärda certifikat om det behövs.

Verktyget Beredskapskontroll utför följande certifikatverifieringar:

  • Parsa PFX
    Söker efter en giltig PFX-fil, rätt lösenord och om den offentliga informationen skyddas av lösenordet.
  • förfallodatum
    Kontrollerar minst giltighet på sju dagar.
  • Signaturalgoritm
    Kontrollerar att signaturalgoritmen inte är SHA1.
  • privat nyckel
    Kontrollerar att den privata nyckeln finns och exporteras med attributet lokal dator.
  • Cert-kedja
    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.
  • Kedjeorder
    Kontrollerar ordningen på de andra certifikaten som verifierar att beställningen är korrekt.
  • Andra certifikat
    Se till att inga andra certifikat utöver det relevanta lövcertifikatet och dess kedja har paketerats i PFX.

Viktig

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 har exporterats enligt de förberedelseinstruktionerna.
  • DeploymentData.json.
  • Windows 10 eller Windows Server 2016.

Utföra certifikatverifiering 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:

  1. 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
    
  2. Skapa certifikatkatalogstrukturen. I exemplet nedan kan du ändra <C:\Certificates\Deployment> till en ny katalogsökväg som du väljer.

    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}
    

    Notera

    AD FS och Graph krävs om du använder AD FS som identitetssystem. Till 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. Till exempel:
      • C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
      • C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
      • C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
  3. I PowerShell-fönstret ändrar du värdena för RegionName, FQDN och IdentitySystem 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  
    
  4. Kontrollera utdata och se till att alla certifikat klarar alla tester. Till 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. Till 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: Testerna skippas

Orsak: AzsReadinessChecker hoppar över vissa tester om ett beroende inte uppfylls:

  • Andra certifikat hoppar ö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: Kontroll av HTTP CRL misslyckas även om en HTTP CDP har skrivits in i x509-tillägg.

Orsak: För närvarande kan AzsReadinessChecker inte söka efter HTTP CDP på vissa språk.

Resolution: Kör validering med OS-språk inställt på EN-US.

Certifikaten

Katalog Intyg
ACSBlob wildcard_blob_<region>_<externalFQDN>
ACSQueue wildcard_queue_<region>_<externalFQDN>
ACSTable wildcard_table_<region>_<externalFQDN>
Värd för administratörstillägg wildcard_adminhosting_<region>_<externalFQDN>
Administratörsportal adminportal_<region>_<externalFQDN>
ARM-administratör adminmanagement_<region>_<externalFQDN>
ARM OFFENTLIG 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.