Share via


X509Certificate2.MatchesHostname(String, Boolean, Boolean) Metodo

Definizione

Verifica se il certificato corrisponde al nome host specificato.

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

Parametri

hostname
String

Nome host da associare.

allowWildcards
Boolean

true per consentire la corrispondenza con caratteri jolly per dNSName i valori nell'estensione Nome alternativo soggetto; in caso contrario, false.

allowCommonName
Boolean

true per consentire la corrispondenza rispetto al valore nome comune soggetto; in caso contrario, false.

Restituisce

true se il certificato è una corrispondenza per il nome host richiesto; Altrimenti false

Eccezioni

Il hostname parametro non è un nome host DNS valido o un indirizzo IP.

Il certificato contiene più estensioni nome alternativo soggetto.

-oppure-

Impossibile decodificare l'estensione Nome alternativo soggetto o Il nome soggetto.

Commenti

Questo metodo è un'implementazione neutrale della piattaforma della logica di corrispondenza host IETF RFC 6125. La classe SslStream usa il validator del nome host dal sistema operativo, che può comportare valori diversi da questa implementazione.

Il flusso logico di questo metodo è:

  • Se il nome host analizza come IPAddress corrispondenza IPAddress viene eseguito. In caso contrario, viene eseguita la corrispondenza dei nomi DNS.
  • Per la corrispondenza ipAddress, il valore deve essere una corrispondenza esatta rispetto a un iPAddress valore in una voce dell'estensione Nome alternativo soggetto.
  • Per la corrispondenza dei nomi DNS, il valore deve essere una corrispondenza esatta rispetto a un dNSName valore in una voce dell'estensione Nome alternativo soggetto o una corrispondenza con caratteri jolly rispetto alla stessa.
  • Per la corrispondenza con caratteri jolly, il carattere jolly deve essere il primo carattere nella dNSName voce, il secondo carattere deve essere un punto (.) e la voce deve avere una lunghezza maggiore di due.
    Il carattere jolly corrisponde solo al hostname primo periodo (.), i caratteri rimanenti devono corrispondere esattamente.
  • Se non esiste un'estensione Nome alternativo soggetto o l'estensione non dispone di voci del tipo appropriato, la corrispondenza nome comune viene usata come fallback.
  • Per la corrispondenza nome comune, se il nome soggetto contiene un singolo nome comune e tale attributo non è definito come parte di un nome distinto relativo a più valori, il nome host viene corrispondente al valore dell'attributo Common Name.
    Si noti che i caratteri jolly non vengono usati nella corrispondenza nome comune.

Questa implementazione considera SRV-ID valori o URI-ID valori non compresi nell'ambito e non userà la propria presenza come motivo per arrestare il fallback dalla DNS-ID corrispondenza all'oggetto CN-ID.

Questo metodo non converte nomi host non ASCII nella rappresentazione IDNA. Per i domini Unicode, il chiamante deve usare IdnMapping o un mapper IDNA equivalente.

Le corrispondenze "esatte" eseguite da questa routine sono OrdinalIgnoreCase, perché i nomi di dominio non sono distinzione tra maiuscole e minuscole.

Questo metodo non determina se il nome host è autorizzato da un'autorità attendibile. Non è possibile prendere una decisione di attendibilità senza controllare ulteriormente l'attendibilità tramite X509Chain.

Questo metodo non verifica che il certificato disponga di un id-kp-serverAuth utilizzo esteso della chiave estesa (1.3.6.1.5.5.7.3.1).

Si applica a