Bagikan melalui


Layanan Federasi Direktori Aktif dan informasi properti KeySpec sertifikat

Spesifikasi Kunci ("KeySpec") adalah properti yang terkait dengan sertifikat dan kunci. Ini menentukan apakah kunci privat yang terkait dengan sertifikat dapat digunakan untuk penandatanganan, enkripsi, atau keduanya.

Nilai KeySpec yang salah dapat menyebabkan kesalahan AD FS dan Web Proksi Aplikasi seperti:

  • Kegagalan untuk membuat koneksi SSL/TLS ke Layanan Federasi Direktori Aktif atau Proksi Aplikasi Web, tanpa peristiwa Layanan Federasi Direktori Aktif yang dicatat (meskipun peristiwa SChannel 36888 dan 36874 dapat dicatat)
  • Kegagalan untuk masuk di halaman autentikasi berbasis formulir LAYANAN Federasi Direktori Aktif atau WAP, tanpa pesan kesalahan yang ditampilkan di halaman.

Anda mungkin melihat peristiwa berikut di log peristiwa:

Log Name:   AD FS Tracing/Debug
Source: AD FS Tracing
Date:   2/12/2015 9:03:08 AM
Event ID:   67
Task Category: None
Level:  Error
Keywords:   ADFSProtocol
User:   S-1-5-21-3723329422-3858836549-556620232-1580884
Computer:   ADFS1.contoso.com
Description:
Ignore corrupted SSO cookie.

Apa yang menyebabkan masalah

Properti KeySpec mengidentifikasi bagaimana kunci yang dihasilkan atau diambil menggunakan Microsoft CryptoAPI (CAPI) dari Penyedia Penyimpanan Kriptografi (CSP) warisan Microsoft dapat digunakan.

Nilai KeySpec 1, atau AT_KEYEXCHANGE, dapat digunakan untuk penandatanganan dan enkripsi. Nilai 2, atau AT_SIGNATURE, hanya digunakan untuk penandatanganan.

Konfigurasi kesalahan KeySpec yang paling umum adalah menggunakan nilai 2 untuk sertifikat selain sertifikat penandatanganan token.

Untuk sertifikat yang kuncinya dihasilkan menggunakan penyedia Cryptography Next Generation (CNG), tidak ada konsep spesifikasi kunci, dan nilai KeySpec selalu nol.

Pelajari cara memeriksa nilai KeySpec yang valid di bagian berikutnya dari artikel ini.

Contoh

Contoh CSP warisan adalah Penyedia Kriptografi yang Ditingkatkan Microsoft.

Format blob kunci Microsoft RSA CSP mencakup pengidentifikasi algoritma, baik CALG_RSA_KEYX atau CALG_RSA_SIGN, masing-masing, ke permintaan layanan untuk AT_KEYEXCHANGE **atau **kunci AT_SIGNATURE.

Pengidentifikasi algoritma kunci RSA memetakan ke nilai KeySpec sebagai berikut

Algoritma yang didukung penyedia Nilai Spesifikasi Utama untuk panggilan CAPI
CALG_RSA_KEYX : Kunci RSA yang dapat digunakan untuk penandatanganan dan dekripsi AT_KEYEXCHANGE (atau KeySpec=1)
CALG_RSA_SIGN : Kunci tanda tangan RSA saja AT_SIGNATURE (atau KeySpec=2)

Nilai KeySpec dan arti terkait

Berikut ini adalah arti dari berbagai nilai KeySpec:

Nilai Keyspec Berarti Penggunaan LAYANAN Federasi Direktori Aktif yang direkomendasikan
0 Sertifikat adalah sertifikat CNG Sertifikat SSL saja
1 Untuk sertifikasi CAPI (non-CNG) warisan, kunci dapat digunakan untuk penandatanganan dan dekripsi SSL, penandatanganan token, dekripsi token, sertifikat komunikasi layanan
2 Untuk sertifikasi CAPI (non-CNG) warisan, kunci hanya dapat digunakan untuk penandatanganan tidak disarankan

Cara memeriksa nilai KeySpec untuk sertifikat / kunci Anda

Untuk melihat nilai sertifikat, Anda dapat menggunakan certutil alat baris perintah.

Berikut ini adalah contoh: certutil –v –store my. Perintah ini mencadangkan informasi sertifikat ke layar.

Keyspec cert

Di bawah CERT_KEY_PROV_INFO_PROP_ID cari dua hal:

  • ProviderType: Ini menunjukkan apakah sertifikat menggunakan Penyedia Penyimpanan Kriptografi (CSP) warisan atau Penyedia Penyimpanan Kunci berdasarkan API Certificate Next Generation (CNG) yang lebih baru. Nilai bukan nol menunjukkan penyedia warisan.

  • KeySpec: Tabel berikut ini memperlihatkan nilai yang valid KeySpec untuk sertifikat LAYANAN Federasi Direktori Aktif:

    Penyedia CSP warisan (ProviderType tidak sama dengan 0):

    Tujuan Sertifikat Layanan Federasi Direktori Aktif Nilai KeySpec yang Valid
    Komunikasi Layanan 1
    Dekripsi Token 1
    Penandatanganan Token 1 dan 2
    SSL 1

    Penyedia CNG (ProviderType = 0):

    Tujuan Sertifikat Layanan Federasi Direktori Aktif Nilai KeySpec yang Valid
    SSL 0

Cara mengubah keyspec untuk sertifikat Anda ke nilai yang didukung

Mengubah nilai KeySpec tidak mengharuskan sertifikat diregenerasi atau diterbitkan kembali. KeySpec dapat diubah dengan memasukkan kembali sertifikat lengkap dan kunci privat dari file PFX ke penyimpanan sertifikat menggunakan langkah-langkah berikut.

  1. Periksa dan rekam izin kunci privat pada sertifikat yang ada sehingga dapat dikonfigurasi ulang jika perlu setelah diimportasi ulang.
  2. Ekspor sertifikat termasuk kunci privat ke file PFX.
  3. Lakukan langkah-langkah berikut untuk setiap layanan federasi direktori aktif dan server WAP.
    1. Hapus sertifikat (dari server AD FS / WAP).
    2. Membuka prompt perintah PowerShell yang ditinggikan.
    3. Impor file PFX di setiap layanan federasi direktori aktif dan server WAP menggunakan sintaks berikut, menentukan AT_KEYEXCHANGE nilai (yang berfungsi untuk semua tujuan sertifikat LAYANAN Federasi Direktori Aktif):
      1. certutil –importpfx certfile.pfx AT_KEYEXCHANGE
      2. Masukkan kata sandi PFX.
    4. Setelah proses di atas selesai, lakukan hal berikut:
      1. Periksa izin kunci privat.
      2. Mulai ulang layanan LAYANAN Federasi Direktori Aktif atau WAP.