Comparteix a través de


X509Certificate2.MatchesHostname(String, Boolean, Boolean) Método

Definición

Comprueba si el certificado coincide con el nombre de host proporcionado.

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

Parámetros

hostname
String

Nombre de host con el que se va a buscar coincidencia.

allowWildcards
Boolean

true es para permitir la coincidencia de caracteres comodín para dNSName los valores de la extensión Nombre alternativo del firmante; en caso contrario, falsees .

allowCommonName
Boolean

true para permitir la coincidencia con el valor de Nombre común del firmante; de lo contrario, false.

Devoluciones

true si el certificado es una coincidencia para el nombre de host solicitado; Lo contrario false

Excepciones

El hostname parámetro no es un nombre de host DNS o una dirección IP válidos.

El certificado contiene varias extensiones de nombre alternativo del firmante.

O bien

No se pudo descodificar la extensión nombre alternativo del firmante ni el nombre del firmante.

Comentarios

Este método es una implementación neutra de la plataforma de la lógica de coincidencia de host RFC 6125 de IETF. La clase SslStream usa el validador de nombre de host del sistema operativo, lo que puede dar lugar a valores diferentes de esta implementación.

El flujo lógico de este método es:

  • Si el nombre de host analiza como , se realiza la IPAddress coincidencia de IPAddress; de lo contrario, se realiza la coincidencia de nombres DNS.
  • Para la coincidencia de IPAddress, el valor debe ser una coincidencia exacta con un iPAddress valor en una entrada de la extensión Nombre alternativo del firmante.
  • Para la coincidencia de nombres DNS, el valor debe ser una coincidencia exacta con un dNSName valor en una entrada de la extensión Nombre alternativo del firmante o una coincidencia de caracteres comodín con el mismo.
  • Para la coincidencia de caracteres comodín, el carácter comodín debe ser el primer carácter de la dNSName entrada, el segundo carácter debe ser un punto (.) y la entrada debe tener una longitud mayor que dos.
    El carácter comodín solo coincidirá con el hostname valor hasta el primer punto (.), los caracteres restantes deben ser una coincidencia exacta.
  • Si no hay ninguna extensión de nombre alternativo del firmante o la extensión no tiene ninguna entrada del tipo adecuado, la coincidencia de nombre común se usa como reserva.
  • Para la coincidencia de nombre común, si el nombre del firmante contiene un único nombre común y ese atributo no se define como parte de un nombre distintivo relativo con varios valores, el nombre de host coincide con el valor del atributo Nombre común.
    Tenga en cuenta que los caracteres comodín no se usan en la coincidencia de nombres comunes.

Esta implementación considera SRV-ID valores o URI-ID valores como fuera del ámbito y no usará su presencia como motivo para impedir que la reserva DNS-ID coincida con .CN-ID

Este método no convierte nombres de host no ASCII en la representación idna. En el caso de los dominios Unicode, el autor de IdnMapping la llamada debe usar o un asignador IDNA equivalente.

Las coincidencias "exactas" realizadas por esta rutina son OrdinalIgnoreCase, ya que los nombres de dominio no distinguen mayúsculas de minúsculas.

Este método no determina si el nombre de host está autorizado por una autoridad de confianza. No se puede tomar una decisión de confianza sin comprobar además la confianza a través de X509Chain.

Este método no comprueba que el certificado tenga un id-kp-serverAuth uso extendido de clave extendida (1.3.6.1.5.5.7.3.1).

Se aplica a