Bagikan melalui


X509Certificate2.MatchesHostname(String, Boolean, Boolean) Metode

Definisi

Memeriksa untuk melihat apakah sertifikat cocok dengan nama host yang disediakan.

public bool MatchesHostname (string hostname, bool allowWildcards = true, bool allowCommonName = true);
member this.MatchesHostname : string * bool * bool -> bool
Public Function MatchesHostname (hostname As String, Optional allowWildcards As Boolean = true, Optional allowCommonName As Boolean = true) As Boolean

Parameter

hostname
String

Nama host yang cocok dengan.

allowWildcards
Boolean

true untuk mengizinkan pencocokan kartubebas untuk dNSName nilai dalam ekstensi Nama Alternatif Subjek; jika tidak, false.

allowCommonName
Boolean

true untuk memungkinkan pencocokan terhadap nilai Nama Umum subjek; jika tidak, false.

Mengembalikan

true jika sertifikat cocok dengan nama host yang diminta; Sebaliknya false

Pengecualian

Parameter hostname bukan nama host DNS atau alamat IP yang valid.

Sertifikat berisi beberapa ekstensi Nama Alternatif Subjek.

-atau-

Ekstensi Nama Alternatif Subjek atau Nama Subjek tidak dapat didekodekan.

Keterangan

Metode ini adalah implementasi netral platform dari logika pencocokan host IETF RFC 6125. Kelas SslStream menggunakan validator nama host dari sistem operasi, yang dapat mengakibatkan nilai yang berbeda dari implementasi ini.

Alur logis dari metode ini adalah:

  • Jika nama host diurai sebagai IPAddress pencocokan IPAddress dilakukan; jika tidak, pencocokan Nama DNS dilakukan.
  • Untuk pencocokan IPAddress, nilai harus sama persis dengan iPAddress nilai dalam entri ekstensi Nama Alternatif Subjek.
  • Untuk pencocokan Nama DNS, nilai harus sama persis dengan dNSName nilai dalam entri ekstensi Nama Alternatif Subjek, atau kecocokan kartubebas terhadap yang sama.
  • Untuk pencocokan kartubebas, kartubebas harus menjadi karakter pertama dalam dNSName entri, karakter kedua harus berupa titik (.), dan entri harus memiliki panjang yang lebih besar dari dua.
    Kartubebas hanya akan cocok dengan hostname nilai hingga periode pertama (.), karakter yang tersisa harus sama persis.
  • Jika tidak ada ekstensi Nama Alternatif Subjek, atau ekstensi tidak memiliki entri jenis yang sesuai, maka pencocokan Nama Umum digunakan sebagai fallback.
  • Untuk Pencocokan Nama Umum, jika Nama Subjek berisi satu Nama Umum, dan atribut tersebut tidak didefinisikan sebagai bagian dari Nama Khusus Relatif multinilai, maka nama host dicocokkan dengan nilai atribut Nama Umum.
    Perhatikan bahwa kartubebas tidak digunakan dalam pencocokan Nama Umum.

Implementasi ini menganggap SRV-ID nilai atau URI-ID nilai sebagai di luar cakupan, dan tidak akan menggunakan kehadirannya sebagai alasan untuk menghentikan fallback DNS-ID agar tidak cocok dengan CN-ID.

Metode ini tidak mengonversi nama host non-ASCII ke representasi IDNA. Untuk domain Unicode, pemanggil harus menggunakan IdnMapping atau pemeta IDNA yang setara.

Kecocokan "persis" yang dilakukan oleh rutinitas ini adalah OrdinalIgnoreCase, karena nama domain tidak peka huruf besar/kecil.

Metode ini tidak menentukan apakah nama host diotorisasi oleh otoritas tepercaya. Keputusan kepercayaan tidak dapat dibuat tanpa juga memeriksa kepercayaan melalui X509Chain.

Metode ini tidak memeriksa bahwa sertifikat memiliki penggunaan kunci yang id-kp-serverAuth diperluas (1.3.6.1.5.5.7.3.1).

Berlaku untuk