Ověřování certifikátů PKI služby Azure Stack Hub

Nástroj Azure Stack Hub Readiness Checker popsaný v tomto článku je k dispozici na Galerie prostředí PowerShell. Pomocí nástroje ověřte, že vygenerované certifikáty infrastruktury veřejných klíčů (PKI) jsou vhodné pro před nasazením. Ověřujte certifikáty tím, že ponecháte dostatek času na testování a v případě potřeby znovu vyžádáte certifikáty.

Nástroj Readiness Checker provádí následující ověření certifikátu:

  • Parsovat PFX
    Kontroluje platný soubor PFX, správné heslo a to, jestli jsou veřejné informace chráněné heslem.
  • Datum vypršení platnosti
    Kontroluje minimální dobu platnosti sedmi dnů.
  • Algoritmus podpisu
    Kontroluje, zda algoritmus podpisu není SHA1.
  • Privátní klíč
    Kontroluje, zda je privátní klíč přítomen a je exportován s atributem místního počítače.
  • Řetěz certifikátů
    Kontroluje, zda řetěz certifikátů není v pořádku, včetně kontroly certifikátů podepsaných svým držitelem.
  • Názvy DNS
    Zkontroluje, jestli san obsahuje relevantní názvy DNS pro každý koncový bod nebo jestli je k dispozici podpůrný zástupný znak.
  • Použití klíče
    Zkontroluje, jestli použití klíče obsahuje digitální podpis a šifrování klíče, a zkontroluje, jestli rozšířené použití klíče obsahuje ověření serveru a ověření klienta.
  • Velikost klíče
    Zkontroluje, jestli má klíč velikost 2048 nebo větší.
  • Pořadí řetězců
    Zkontroluje pořadí ostatních certifikátů a ověří správnost objednávky.
  • Další certifikáty
    Zajistěte, aby v PFX nebyly zabalené žádné jiné certifikáty než příslušný listový certifikát a jeho řetěz.

Důležité

Certifikát PKI je soubor PFX a heslo by se mělo považovat za citlivé informace.

Požadavky

Systém by měl před ověřením certifikátů PKI pro nasazení infrastruktury veřejných klíčů splňovat Azure Stack Hub požadavky:

  • Microsoft Azure Stack Hub Readiness Checker.
  • Certifikáty SSL exportované podle pokynů k přípravě.
  • DeploymentData.json.
  • Windows 10 nebo Windows Server 2016.

Ověřování certifikátů základních služeb

Pomocí těchto kroků ověřte, zda Azure Stack Hub certifikátů PKI pro nasazení a rotaci tajných klíčů:

  1. Nainstalujte AzsReadinessChecker z příkazového řádku PowerShellu (5.1 nebo vyšší) spuštěním následující rutiny:

        Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  2. Vytvořte adresářovou strukturu certifikátu. V následujícím příkladu můžete změnit <C:\Certificates\Deployment> cestu k novému adresáři podle vašeho výběru.

    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}
    

    Poznámka

    AD FS a Graph, pokud jako systém identit používáte AD FS ověřování. Například:

    $directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
    
    • Umístěte certifikáty do příslušných adresářů vytvořených v předchozím kroku. Například:
      • C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
      • C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
      • C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
  3. V okně PowerShellu změňte hodnoty a odpovídajícím způsobem RegionName na Azure Stack Hub prostředí a spusťte následující FQDNIdentitySystem rutinu:

    $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. Zkontrolujte výstup a ujistěte se, že všechny certifikáty projdou všemi testy. Například:

    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
    
    

    Pokud chcete ověřit certifikáty pro Azure Stack Hub služeb, změňte hodnotu pro -CertificateType . Například:

    # 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
    

    Každá složka by měla obsahovat jeden soubor PFX pro typ certifikátu. Pokud má typ certifikátu požadavky na více certifikátů, očekávají se vnořené složky pro každý jednotlivý certifikát a rozlišují se na název. Následující kód ukazuje příklad struktury složek/certifikátů pro všechny typy certifikátů a příslušnou hodnotu pro a -CertificateType-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
                |
                \---IoTHub              # Invoke-AzsCertificateValidation `
                        iothub.pfx      #   -CertificateType IoTHub `
                                        #   -CertificatePath C:\Certificates\IoTHub
    

Známé problémy

Příznaky:Testy se přeskočí.

Příčina:AzsReadinessChecker přeskočí některé testy, pokud není splněna závislost:

  • Pokud řetěz certifikátů selže, ostatní certifikáty se přeskočí.

    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
    

Řešení:Postupujte podle pokynů k nástroji v části s podrobnostmi v každé sadě testů pro každý certifikát.

Příznaky:Kontrola seznamu CRL HTTP selže, přestože protokol HTTP CDP je zapsán do rozšíření x509.

Příčina:AzsReadinessChecker v současné době nemůže v některých jazycích zkontrolovat PROTOKOL HTTP CDP.

Řešení:Spusťte ověřování s jazykem operačního systému nastaveným na EN-US.

Certifikáty

Adresář Certifikát
ACSBlob wildcard_blob_<region>_<externalFQDN>
Fronta služby ACS wildcard_queue_<region>_<externalFQDN>
Tabulka služby ACS wildcard_table_<region>_<externalFQDN>
Admin Extension Host wildcard_adminhosting_<region>_<externalFQDN>
Portál pro správu adminportal_<region>_<externalFQDN>
Správce ARM adminmanagement_<region>_<externalFQDN>
Arm – veřejná management_<region>_<externalFQDN>
KeyVault wildcard_vault_<region>_<externalFQDN>
KeyVaultInternal wildcard_adminvault_<region>_<externalFQDN>
Veřejný hostitel rozšíření wildcard_hosting_<region>_<externalFQDN>
Veřejný portál portal_<region>_<externalFQDN>

Další kroky

Jakmile AzsReadinessChecker ověří certifikáty, můžete je použít pro nasazení Azure Stack Hub obměně tajných klíčů po nasazení.

  • V případě nasazení bezpečně přeneste certifikáty vašemu technikovi nasazení, aby je mohl zkopírovat do virtuálního počítače nasazení, který je hostitelem určeným v požadavcích infrastruktury veřejných klíčů Azure Stack Hub – povinné certifikáty.
  • Informace o obměně tajných kódů najdete v tématu Obměná tajných Azure Stack Hub. Obměna certifikátů poskytovatele prostředků s přidanou hodnotou je prokrytá v části Obměna externích tajných kódů.