X509Certificate2.MatchesHostname(String, Boolean, Boolean) Metoda

Definice

Zkontroluje, jestli certifikát odpovídá zadanému názvu hostitele.

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

Parametry

hostname
String

Název hostitele, který se má shodovat.

allowWildcards
Boolean

true umožňuje shodování zástupných znaků pro dNSName hodnoty v rozšíření alternativního názvu subjektu. V opačném případě false.

allowCommonName
Boolean

truepovolit porovnávání s hodnotou běžného názvu předmětu; v opačném případě . false

Návraty

true pokud se certifikát shoduje s požadovaným názvem hostitele; Jinak false

Výjimky

Parametr hostname není platný název hostitele DNS nebo IP adresa.

Certifikát obsahuje několik přípon alternativního názvu subjektu.

-nebo-

Rozšíření alternativního názvu subjektu nebo název subjektu nelze dekódovat.

Poznámky

Tato metoda je platformově neutrální implementace logiky porovnávání hostitelů IETF RFC 6125. Třída SslStream používá validátor názvu hostitele z operačního systému, což může mít za následek odlišné hodnoty z této implementace.

Logický tok této metody je:

  • Pokud se název hostitele parsuje jako IPAddress IPAddress, provede se párování ip adres. V opačném případě se párování názvů DNS provede.
  • V případě shody IPAddress musí být hodnota přesná shoda s iPAddress hodnotou v položce rozšíření Alternativní název předmětu.
  • Při porovnávání názvů DNS musí být hodnota přesná shoda s dNSName hodnotou v položce rozšíření alternativního názvu subjektu nebo zástupným znakem.
  • Při porovnávání zástupných znaků musí být zástupný znak prvním znakem v záznamu dNSName , druhým znakem musí být tečka (.) a položka musí mít délku větší než dva.
    Zástupný znak se bude shodovat pouze s hostname hodnotou do první tečky (.), zbývající znaky musí být přesnou shodou.
  • Pokud neexistuje žádné rozšíření alternativního názvu subjektu nebo rozšíření neobsahuje žádné položky příslušného typu, použije se jako náhradní shoda běžných názvů.
  • Pokud název subjektu obsahuje jeden běžný název a tento atribut není definován jako součást relativního rozlišujícího názvu s více hodnotami, pak se název hostitele porovná s hodnotou atributu Common Name.
    Všimněte si, že při porovnávání běžných názvů se nepoužívají zástupné znaménky.

Tato implementace považuje SRV-ID hodnoty nebo URI-ID hodnoty za mimo rozsah a nebude používat jejich přítomnost jako důvod k tomu, aby se zastavila shoda náhradních DNS-ID hodnot s parametrem CN-ID.

Tato metoda nepřevádí názvy hostitelů jiných než ASCII na reprezentaci IDNA. V případě domén Unicode musí volající použít IdnMapping mapovač IDNA nebo jeho ekvivalent.

"Přesné" shody prováděné touto rutinou jsou OrdinalIgnoreCase, protože v názvech domén se nerozlišují velká a malá písmena.

Tato metoda nezjišťuje, jestli je název hostitele autorizovaný důvěryhodnou autoritou. Rozhodnutí o důvěryhodnosti nelze provést bez další kontroly důvěryhodnosti prostřednictvím X509Chain.

Tato metoda nekontroluje, jestli má certifikát id-kp-serverAuth rozšířené použití klíče (1.3.6.1.5.5.7.3.1).

Platí pro