Share via


X509Certificate2.MatchesHostname(String, Boolean, Boolean) 메서드

정의

인증서가 제공된 호스트 이름과 일치하는지 확인합니다.

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

매개 변수

hostname
String

일치시킬 호스트 이름입니다.

allowWildcards
Boolean

true 주체 대체 이름 확장의 값에 와일드카드 dNSName 일치를 허용하려면 이고, false그렇지 않으면 입니다.

allowCommonName
Boolean

true 주체 일반 이름 값에 대한 일치를 허용하려면 이고, 그렇지 않으면 입니다 false.

반환

true 인증서가 요청된 호스트 이름과 일치하는 경우 그렇지 않으면 false

예외

hostname 매개 변수가 유효한 DNS 호스트 이름 또는 IP 주소가 아닙니다.

인증서에는 여러 주체 대체 이름 확장이 포함되어 있습니다.

또는

주체 대체 이름 확장 또는 주체 이름을 디코딩할 수 없습니다.

설명

이 메서드는 IETF RFC 6125 호스트 일치 논리의 플랫폼 중립적 구현입니다. SslStream 클래스는 운영 체제의 호스트 이름 유효성 검사기를 사용하므로 이 구현과 다른 값이 발생할 수 있습니다.

이 메서드의 논리적 흐름은 다음과 같습니다.

  • 호스트 이름이 로 IPAddress 구문 분석되면 IPAddress 일치가 수행되고, 그렇지 않으면 DNS 이름 일치가 수행됩니다.
  • IPAddress 일치의 경우 값은 주체 대체 이름 확장의 항목에 있는 값과 iPAddress 정확히 일치해야 합니다.
  • DNS 이름 일치의 경우 값은 주체 대체 이름 확장 항목의 값과 정확히 일치 dNSName 하거나 동일한 항목에 대한 와일드카드 일치여야 합니다.
  • 와일드카드 일치의 경우 와일드카드는 항목의 첫 번째 문자 dNSName 여야 하고 두 번째 문자는 마침표(.)여야 하며 항목의 길이가 2보다 커야 합니다.
    와일드카드는 첫 번째 마침표(.)까지의 값과만 일치 hostname 하며, 나머지 문자는 정확히 일치해야 합니다.
  • 주체 대체 이름 확장이 없거나 확장에 적절한 형식의 항목이 없는 경우 일반 이름 일치가 대체로 사용됩니다.
  • 공통 이름 일치의 경우 주체 이름에 단일 공통 이름이 포함되어 있고 해당 특성이 다중값 상대 고유 이름의 일부로 정의되지 않은 경우 호스트 이름은 Common Name 특성의 값과 일치합니다.
    와일드카드는 공통 이름 일치에 사용되지 않습니다.

이 구현에서는 SRV-ID 값 또는 URI-ID 값을 scope 것으로 간주하며 대체가 와 일치하지 CN-ID않도록 하는 DNS-ID 이유로 해당 현재 상태를 사용하지 않습니다.

이 메서드는 비 ASCII 호스트 이름을 IDNA 표현으로 변환하지 않습니다. 유니코드 도메인의 경우 호출자는 또는 동등한 IDNA 매퍼를 사용해야 IdnMapping 합니다.

도메인 이름은 대/소문자를 구분하지 않으므로 이 루틴 OrdinalIgnoreCase에서 수행하는 "정확한" 일치 항목은 입니다.

이 메서드는 호스트 이름이 신뢰할 수 있는 기관에 의해 권한이 부여되었는지 여부를 결정하지 않습니다. 을 통해 X509Chain트러스트를 추가로 확인하지 않고는 트러스트 결정을 내릴 수 없습니다.

이 메서드는 인증서 id-kp-serverAuth 에 (1.3.6.1.5.5.5.7.3.1) 확장 키 사용이 있음을 검사 않습니다.

적용 대상