Az Azure Stack Hub PKI-tanúsítványok ellenőrzése

A Azure Stack Hub cikkben ismertetett, a készenlét-ellenőrzéshez használható eszköz a következő PowerShell-galéria. Az eszközzel ellenőrizheti, hogy a létrehozott nyilvános kulcsokra vonatkozó infrastruktúra- (PKI-) tanúsítványok alkalmasak-e az üzembe helyezés előtti használatra. Ellenőrizze a tanúsítványokat úgy, hogy elegendő időt hagy a tanúsítványok tesztelésére és újrakiadására, ha szükséges.

A készenlét-ellenőrzési eszköz a következő tanúsítványérvényesítéseket végzi el:

  • PFX-parse
    Ellenőrzi az érvényes PFX-fájlt, a helyes jelszót, valamint azt, hogy a nyilvános információkat jelszó védi-e.
  • A lejárat dátuma
    Ellenőrzi a hét nap minimális érvényességét.
  • Aláírási algoritmus
    Ellenőrzi, hogy az aláírási algoritmus nem SHA1-e.
  • Titkos kulcs
    Ellenőrzi, hogy a titkos kulcs jelen van-e, és a helyi gép attribútummal van-e exportálva.
  • Tanúsítványlánc
    Ellenőrzi, hogy a tanúsítványlánc nem sérült-e, beleértve az önaírt tanúsítványok ellenőrzését is.
  • DNS-nevek
    Ellenőrzi, hogy a SAN tartalmazza-e az egyes végpontok dns-neveit, vagy hogy van-e támogató helyettesítő karakter.
  • Kulcshasználat
    Ellenőrzi, hogy a kulcshasználat tartalmaz-e digitális aláírást és kulcstendátást, és ellenőrzi, hogy a kibővített kulcshasználat tartalmazza-e a kiszolgálói hitelesítést és az ügyfél-hitelesítést.
  • Kulcsméret
    Ellenőrzi, hogy a kulcs mérete 2048 vagy nagyobb-e.
  • Láncrend
    Ellenőrzi a többi tanúsítvány sorrendjét, és ellenőrzi, hogy a rendelés helyes-e.
  • Egyéb tanúsítványok
    Győződjön meg arról, hogy nem csomagolt más tanúsítványt PFX-be, csak a megfelelő levéltanúsítványt és annak láncát.

Fontos

A PKI-tanúsítvány egy PFX-fájl, és a jelszót bizalmas információként kell kezelni.

Előfeltételek

A rendszernek meg kell felelnie a következő előfeltételeknek, mielőtt érvényesíti a PKI-tanúsítványokat egy Azure Stack Hub telepítéshez:

  • Microsoft Azure Stack Hub készenlét-ellenőrzője.
  • Az előkészítési utasítások szerint exportált SSL-tanúsítvány(ok).
  • DeploymentData.json.
  • Windows 10 vagy Windows Server 2016.

Az alapvető szolgáltatások tanúsítványainak ellenőrzése

Az alábbi lépésekkel ellenőrizheti, hogy Azure Stack Hub PKI-tanúsítványokat üzembe helyezéshez és titkos adatok rotálásához:

  1. Telepítse az AzsReadinessCheckert egy PowerShell-parancssorból (5.1-es vagy újabb) a következő parancsmag futtatásával:

        Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  2. Hozza létre a tanúsítvány könyvtárstruktúráját. Az alábbi példában egy új <C:\Certificates\Deployment> könyvtárútvonalra válthat.

    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}
    

    Megjegyzés

    AD FS és Graph szükséges, ha identitásrendszerként AD FS-t használ. Például:

    $directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
    
    • Helyezze el a tanúsítvány(ok)t az előző lépésben létrehozott megfelelő könyvtárakban. Például:
      • C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
      • C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
      • C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
  3. A PowerShell-ablakban módosítsa a és a értékét a Azure Stack Hub megfelelő értékére, és futtassa a RegionNameFQDN következő IdentitySystem parancsmagot:

    $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. Ellenőrizze a kimenetet, és ellenőrizze, hogy az összes tanúsítvány megfelelő-e az összes teszten. Például:

    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
    
    

    Ha más szolgáltatások tanúsítványait Azure Stack Hub, módosítsa a -CertificateType értékét. Például:

    # 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
    
    # IoTHub
    Invoke-AzsHubIoTHubCertificateValidation -CertificatePath C:\Certificates\IoTHub -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com
    

    Minden mappának egyetlen PFX-fájlt kell tartalmaznia a tanúsítványtípushoz. Ha egy tanúsítványtípus több tanúsítványra vonatkozó követelményekkel rendelkezik, az egyes tanúsítványok beágyazott mappái elvártak és névérzékenyek. Az alábbi kód egy mappa-/tanúsítványstruktúrát mutat be az összes tanúsítványtípushoz, valamint a és a megfelelő -CertificateType-CertificatePath értékét.

    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
                |
                \---IoTHub              # Invoke-AzsCertificateValidation `
                        iothub.pfx      #   -CertificateType IoTHub `
                                        #   -CertificatePath C:\Certificates\IoTHub
    

Ismert problémák

Jelenség:A tesztek ki vannak hagyva

Ok:AzsReadinessChecker kihagy bizonyos teszteket, ha egy függőség nem teljesül:

  • Ha a tanúsítványlánc meghibásodik, a rendszer kihagyja az egyéb tanúsítványokat.

    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
    

Megoldás:Kövesse az eszköz részletes szakaszának minden egyes tanúsítványteszt-készlete alatt található útmutatását.

Jelenség:A HTTP CRL ellenőrzése sikertelen annak ellenére, hogy egy HTTP CDP x509-bővítményekbe van írva.

Ok:Az AzsReadinessChecker jelenleg bizonyos nyelveken nem tudja ellenőrizni a HTTP CDP-t.

Megoldás:Futtassa az érvényesítést úgy, hogy az operációs rendszer nyelve az EN-US.

Tanúsítványok

Címtár Tanúsítvány
ACSBlob wildcard_blob_<region>_<externalFQDN>
ACSQueue wildcard_queue_<region>_<externalFQDN>
ACSTable wildcard_table_<region>_<externalFQDN>
Rendszergazdai bővítménygazda wildcard_adminhosting_<region>_<externalFQDN>
Felügyeleti portál adminportal_<region>_<externalFQDN>
ARM-rendszergazda adminmanagement_<region>_<externalFQDN>
ARM nyilvános management_<region>_<externalFQDN>
KeyVault wildcard_vault_<region>_<externalFQDN>
KeyVaultInternal wildcard_adminvault_<region>_<externalFQDN>
Nyilvános bővítménygazda wildcard_hosting_<region>_<externalFQDN>
Nyilvános portál portal_<region>_<externalFQDN>

Következő lépések

Ha az AzsReadinessChecker érvényesíti a tanúsítványokat, készen áll a Azure Stack Hub üzembe helyezést vagy az üzembe helyezés utáni titkos adatok rotálását lehetővé tő használatra.

  • Az üzembe helyezéshez biztonságosan adja át a tanúsítványokat az üzembe helyezési mérnöknek, hogy azokat az üzembe helyezési virtuális gépre másolják, amely a PKI-követelmények– kötelező tanúsítványok Azure Stack Hub meg.
  • Titkos kulcsok rotációja: Titkos kulcsok rotációjaa Azure Stack Hub. Az érték-hozzáadási erőforrás-szolgáltatói tanúsítványok rotációja a Külső titkos kulcsok rotációja című szakaszban található.