Azure Stack Hub PKI sertifikalarını doğrulama

Bu makalede açıklanan Azure Stack Hub Hazırlık Denetleyicisi aracı PowerShell Galerisi'nden edinilebilir. Aracı kullanarak oluşturulan ortak anahtar altyapısı (PKI) sertifikalarının dağıtım öncesi için uygun olduğunu doğrulayı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
    En düşük yedi günlü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ın denetimi de dahil olmak üzere sertifika zincirinin bozulmamış olduğunu denetler.
  • DNS adları
    SAN'ın her uç nokta için ilgili DNS adları 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 bilgiler olarak ele alınmalıdır.

Önkoşullar

Bir Azure Stack Hub dağıtımı için PKI sertifikalarını doğrulamadan önce sisteminizin aşağıdaki önkoşulları karşılaması gerekir:

Ç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 sisteminiz olarak AD FS kullanıyorsanız AD FS ve Graph gereklidir. Örnek:

    $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. Örnek:
      • 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 testlerden geçtiğinden emin olun. Örnek:

    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 -CertificateTypedeğerini değiştirin. Örnek:

    # 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 ve -CertificatePathiçin -CertificateType uygun 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             #     -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
    

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ündeki aracın yönergelerini izleyin.

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

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

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

Sertifikalar

Dizin Sertifika
ACSBlob wildcard_blob_<region>_<externalFQDN>
ACSQueue wildcard_queue_<region>_<externalFQDN>
ACSTable wildcard_table_<region>_<externalFQDN>
Yönetici Uzantısı Konağı wildcard_adminhosting_<region>_<externalFQDN>
Yönetim Portalı adminportal_<region>_<externalFQDN>
ARM Yöneticisi 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.