X509Certificate2.MatchesHostname(String, Boolean, Boolean) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
証明書が指定されたホスト名と一致するかどうかを確認します。
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 一致の場合、値は Subject Alternative Name 拡張機能のエントリ内の値と
iPAddress
完全に一致している必要があります。 - DNS 名の一致の場合、値は Subject Alternative Name 拡張機能のエントリ内の値と
dNSName
完全に一致するか、ワイルドカードが同じに一致する必要があります。 - ワイルドカード一致の場合、ワイルドカードはエントリの最初の
dNSName
文字、2 番目の文字はピリオド (.)、エントリの長さが 2 より大きい必要があります。
ワイルドカードは最初のhostname
ピリオド (.) までの値にのみ一致します。残りの文字は完全に一致する必要があります。 - サブジェクトの別名拡張子がない場合、または拡張機能に適切な型のエントリがない場合は、共通名の一致がフォールバックとして使用されます。
- 共通名の一致では、サブジェクト名に 1 つの共通名が含まれており、その属性が複数値の相対識別名の一部として定義されていない場合、ホスト名は Common Name 属性の値と照合されます。
ワイルドカードは共通名の一致では使用されないことに注意してください。
この実装では、値またはURI-ID
値は範囲外と見SRV-ID
なされ、フォールバックDNS-ID
が への一致を停止する理由として、その存在はCN-ID
使用されません。
このメソッドは、ASCII 以外のホスト名を IDNA 表現に変換しません。 Unicode ドメインの場合、呼び出し元は、または同等の IdnMapping IDNA マッパーを使用する必要があります。
ドメイン名では大文字と小文字が区別されないため、このルーチン OrdinalIgnoreCaseによって実行される "正確な" 一致は です。
このメソッドは、ホスト名が信頼された機関によって承認されているかどうかを判断しません。 を使用して X509Chain信頼を追加で確認しないと、信頼の決定を行うことはできません。
この方法では、証明書id-kp-serverAuth
に (1.3.6.1.5.5.7.3.1) の拡張キー使用法があることをチェックしません。
適用対象
.NET