Memvalidasi sertifikat PKI Azure Stack Hub

Alat Pemeriksa Kesiapan Azure Stack Hub yang dijelaskan dalam artikel ini tersedia dari Galeri PowerShell. Gunakan alat ini untuk memvalidasi bahwa sertifikat infrastruktur kunci umum (PKI) yang dibuat cocok untuk pra-penyebaran. Validasi sertifikat dengan memberikan cukup waktu untuk menguji dan menerbitkan kembali sertifikat jika perlu.

Alat Pemeriksa Kesiapan akan melakukan validasi sertifikat berikut:

  • PFX Penguraian
    Memeriksa file PFX yang valid, kata sandi yang benar, dan apakah informasi publik dilindungi oleh kata sandi.
  • Tanggal kedaluwarsa
    Memeriksa validitas minimum tujuh hari.
  • Algoritma tanda tangan
    Memeriksa apakah algoritma tanda tangan bukan SHA1.
  • Kunci privat
    Memeriksa bahwa kunci privat ada dan diekspor dengan atribut mesin lokal.
  • Rantai Sertifikat
    Memeriksa apakah rantai sertifikat masih utuh, termasuk pemeriksaan untuk sertifikat yang ditandatangani sendiri.
  • Nama DNS
    Memeriksa apakah SAN berisi nama DNS yang relevan untuk setiap titik akhir atau apakah ada kartubebas pendukung.
  • Penggunaan kunci
    Memeriksa apakah penggunaan kunci berisi tanda tangan digital dan encipherment kunci dan memeriksa apakah penggunaan kunci yang ditingkatkan berisi autentikasi server dan autentikasi klien.
  • Ukuran Kunci
    Memeriksa apakah ukuran kunci adalah 2048 atau lebih besar.
  • Urutan rantai
    Memeriksa urutan sertifikat lain untuk memvalidasi bahwa urutannya sudah benar.
  • Sertifikat lainnya
    Memastikan tidak ada sertifikat lain yang dikemas dalam PFX selain sertifikat daun yang relevan dan rantainya.

Penting

Sertifikat PKI adalah file PFX dan kata sandi harus diperlakukan sebagai informasi sensitif.

Prasyarat

Sistem Anda harus memenuhi prasyarat berikut sebelum memvalidasi sertifikat PKI untuk penyebaran Azure Stack Hub:

  • Pemeriksa Kesiapan Microsoft Azure Stack Hub.
  • Sertifiakt SSL akan diekspor setelah instruksi persiapan.
  • DeploymentData.json.
  • Windows 10 atau Windows Server 2016.

Melakukan validasi sertifikat layanan inti

Gunakan langkah-langkah ini untuk memvalidasi sertifikat PKI Azure Stack Hub untuk penyebaran dan rotasi rahasia:

  1. Pasang AzsReadinessChecker dari perintah PowerShell (5.1 atau lebih tinggi) dengan menjalankan cmdlet berikut:

    Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  2. Buat struktur direktori sertifikat. Pada contoh di bawah ini, Anda dapat mengubah <C:\Certificates\Deployment> ke jalur direktori baru pilihan Anda.

    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}
    

    Catatan

    Active Directory Federation Services dan Graph diperlukan jika Anda menggunakan Active Directory Federation Services sebagai sistem identitas Anda. Contohnya:

    $directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
    
    • Tempatkan sertifikat Anda di direktori yang sesuai yang dibuat pada langkah sebelumnya. Contohnya:
      • C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
      • C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
      • C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
  3. Di jendela PowerShell, ubah nilai RegionName, FQDN, dan IdentitySystem sesuai dengan lingkungan Azure Stack Hub dan jalankan cmdlet berikut:

    $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. Periksa output dan pastikan bahwa semua sertifikat lulus semua tes. Contohnya:

    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
    

    Untuk memvalidasi sertifikat untuk layanan Azure Stack Hub lainnya, ubah nilai untuk -CertificatePath. Contohnya:

    # 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
    

    Setiap folder harus berisi satu file PFX untuk jenis sertifikat. Jika jenis sertifikat memiliki persyaratan multi-sertifikat, folder bersarang untuk masing-masing sertifikat diharapkan dan peka nama. Kode berikut menunjukkan contoh struktur folder/sertifikat untuk semua jenis sertifikat, dan nilai yang sesuai untuk -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
    
    

Masalah yang diketahui

Gejala: Pengujian dilewati

Penyebab: AzsReadinessChecker melewatkan pengujian tertentu jika dependensi tidak terpenuhi:

  • Sertifikat lain dilewati jika rantai sertifikat gagal.

    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
    

Resolusi: Ikuti panduan alat di bagian detail di bawah setiap set pengujian untuk setiap sertifikat.

Gejala: Pemeriksaan HTTP CRL gagal meskipun memiliki CDP HTTP yang ditulis ke ekstensi x509.

Penyebab: Saat ini, AzsReadinessChecker tidak dapat memeriksa HTTP CDP dalam beberapa bahasa.

Resolusi: Jalankan validasi dengan bahasa OS yang diatur ke EN-US.

Sertifikat

Direktori Sertifikat
ACSBlob wildcard_blob_<region>_<externalFQDN>
ACSQueue wildcard_queue_<region>_<externalFQDN>
ACSTable wildcard_table_<region>_<externalFQDN>
Host Ekstensi Admin wildcard_adminhosting_<region>_<externalFQDN>
Portal Admin adminportal_<region>_<externalFQDN>
ARM Admin adminmanagement_<region>_<externalFQDN>
Publik ARM management_<region>_<externalFQDN>
Az.KeyVault wildcard_vault_<region>_<externalFQDN>
KeyVaultInternal wildcard_adminvault_<region>_<externalFQDN>
Host Ekstensi Publik wildcard_hosting_<region>_<externalFQDN>
Portal Publik portal_<region>_<externalFQDN>

Langkah berikutnya

Setelah sertifikat Anda divalidasi oleh AzsReadinessChecker, Anda siap menggunakannya untuk penyebaran Azure Stack Hub atau pemutaran rahasia pasca-penyebaran.