Azure Stack Hub PKI sertifikalarını doğrulama

Bu makalede açıklanan Azure Stack Hub Hazırlık Denetleyicisi aracına PowerShell Galerisi' den ulaşabilirsiniz. Oluşturulan ortak anahtar altyapısı (PKI) sertifikalarının dağıtım öncesi için uygun olduğunu doğrulamak için aracını kullanın. Gerekirse sertifikaları test etmek ve yeniden göndermek için yeterli zaman bırakarak sertifikaları doğrulayın.

Hazırlık Denetleyicisi aracı aşağıdaki sertifika doğrulamalarını gerçekleştirir:

  • PFX Ayrıştırma
    Geçerli PFX dosyasını, doğru parolayı ve genel bilgilerin parolayla korunup korunmadığını denetler.
  • Süre Sonu Tarihi
    Yedi günlük en düşük geçerliliği denetler.
  • İmza algoritması
    İmza algoritmasının SHA1 olmadığını denetler.
  • Özel Anahtar
    Özel anahtarın mevcut olduğunu ve yerel makine özniteliğiyle dışarı aktarıldığını denetler.
  • Sertifika zinciri
    Otomatik olarak imzalanan sertifikalar için denetim de dahil olmak üzere sertifika zincirinin bozulmamış olduğunu denetler.
  • DNS adları
    SAN'ın her uç nokta için ilgili DNS adlarını içerdiğini veya destekleyen bir joker karakter olup olmadığını denetler.
  • Anahtar kullanımı
    Anahtar kullanımının dijital imza ve anahtar şifrelemesi içerip içermediğini denetler ve gelişmiş anahtar kullanımının sunucu kimlik doğrulaması ve istemci kimlik doğrulaması içerip içermediğini denetler.
  • Anahtar boyutu
    Anahtar boyutunun 2048 veya daha büyük olup olmadığını denetler.
  • Zincir sırası
    Siparişin doğru olduğunu doğrulayan diğer sertifikaların sırasını denetler.
  • Diğer sertifikalar
    PFX'te ilgili yaprak sertifika ve zinciri dışında başka hiçbir sertifikanın paketlenmemiş olduğundan emin olun.

Önemli

PKI sertifikası bir PFX dosyasıdır ve parola hassas bilgi olarak kabul edilmelidir.

Ön koşullar

Sisteminiz bir Azure Stack Hub dağıtımı için PKI sertifikalarını doğrulamadan önce aşağıdaki önkoşulları karşılamalıdır:

  • Microsoft Azure Stack Hub Hazır Olma Denetleyicisi.
  • Hazırlık yönergelerini izleyerek DıŞARı AKTARıLAN SSL Sertifikaları.
  • DeploymentData.json.
  • Windows 10 veya Windows Server 2016.

Çekirdek hizmetler sertifika doğrulaması gerçekleştirme

Dağıtım ve gizli dizi döndürme için Azure Stack Hub PKI sertifikalarını doğrulamak için şu adımları kullanın:

  1. Aşağıdaki cmdlet'i çalıştırarak AzsReadinessChecker'ı bir PowerShell isteminden (5.1 veya üzeri) yükleyin:

    Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  2. Sertifika dizin yapısını oluşturun. Aşağıdaki örnekte, tercih ettiğiniz yeni bir dizin yoluna geçiş <C:\Certificates\Deployment> yapabilirsiniz.

    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}
    

    Not

    Kimlik sistemi olarak AD FS kullanıyorsanız AD FS ve Graph gereklidir. Örneğin:

    $directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
    
    • Sertifikalarınızı önceki adımda oluşturulan uygun dizinlere yerleştirin. Örneğin:
      • C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
      • C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
      • C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
  3. PowerShell penceresinde, Azure Stack Hub ortamına uygun ve IdentitySystem değerlerini FQDNRegionNamedeğiştirin ve aşağıdaki cmdlet'i çalıştırın:

    $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. Çıktıyı denetleyin ve tüm sertifikaların tüm testleri geçtiğinden emin olun. Örneğin:

    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
    

    Diğer Azure Stack Hub hizmetlerinin sertifikalarını doğrulamak için -CertificatePathdeğerini değiştirin. Örneğin:

    # 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
    

    Her klasör, sertifika türü için tek bir PFX dosyası içermelidir. Bir sertifika türünün birden çok sertifika gereksinimi varsa, her bir sertifika için iç içe klasörler beklenir ve ada duyarlıdır. Aşağıdaki kod, tüm sertifika türleri için örnek bir klasör/sertifika yapısı ve için -CertificatePathuygun değeri gösterir.

    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
    
    

Bilinen sorunlar

Belirti: Testler atlandı

Neden: AzsReadinessChecker bir bağımlılık karşılanmazsa bazı testleri atlar:

  • Sertifika zinciri başarısız olursa diğer sertifikalar atlanır.

    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
    

Çözüm: Her sertifika için her test kümesinin altındaki ayrıntılar bölümünde aracın yönergelerini izleyin.

Belirti: x509 uzantılarına yazılmış bir HTTP CDP'sine sahip olmasına rağmen HTTP CRL denetimi başarısız oluyor.

Neden: AzsReadinessChecker şu anda bazı dillerde HTTP CDP'yi denetleyemiyor.

Çözüm: İşletim sistemi dili EN-US olarak ayarlanmış doğrulamayı çalıştırın.

Sertifikalar

Directory Sertifika
ACSBlob wildcard_blob_<region>_<externalFQDN>
ACSQueue wildcard_queue_<region>_<externalFQDN>
ACSTable wildcard_table_<region>_<externalFQDN>
uzantı kona Yönetici wildcard_adminhosting_<region>_<externalFQDN>
Yönetim Portalı adminportal_<region>_<externalFQDN>
ARM Yönetici adminmanagement_<region>_<externalFQDN>
ARM Genel management_<region>_<externalFQDN>
KeyVault wildcard_vault_<region>_<externalFQDN>
KeyVaultInternal wildcard_adminvault_<region>_<externalFQDN>
Genel Uzantı Konağı wildcard_hosting_<region>_<externalFQDN>
Genel Portal portal_<region>_<externalFQDN>

Sonraki adımlar

Sertifikalarınız AzsReadinessChecker tarafından doğrulandıktan sonra, bunları Azure Stack Hub dağıtımı veya dağıtım sonrası gizli dizi döndürme için kullanmaya hazır olursunuz.