X509VerificationFlags 列挙型

定義

X509 チェーン内の証明書の検証を実行する条件を指定します。

この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。

public enum class X509VerificationFlags
[System.Flags]
public enum X509VerificationFlags
[<System.Flags>]
type X509VerificationFlags = 
Public Enum X509VerificationFlags
継承
X509VerificationFlags
属性

フィールド

名前 説明
NoFlag 0

検証に関連するフラグは含まれません。

IgnoreNotTimeValid 1

有効期限が切れているか、証明書の有効性を判断するときにまだ有効になっていないため、無効なチェーン内の証明書は無視します。

IgnoreCtlNotTimeValid 2

証明書の検証を決定するときに、CTL の有効期限が切れているなどの理由で、証明書信頼リスト (CTL) が無効であることを無視します。

IgnoreNotTimeNested 4

CA (証明機関) 証明書と発行された証明書の有効期間が、証明書の検証時に入れ子になっていないことを無視します。 たとえば、CA 証明書は 1 月 1 日から 12 月 1 日まで有効で、発行された証明書は 1 月 2 日から 12 月 2 日まで有効です。これは、有効期間が入れ子になっていないことを意味します。

IgnoreInvalidBasicConstraints 8

証明書の検証を決定するときに、基本制約が無効であることを無視します。

AllowUnknownCertificateAuthority 16

不明な証明機関 (CA) または部分チェーンが原因でチェーンを検証できないことを無視します。

IgnoreWrongUsage 32

証明書の検証を決定するときに、現在の使用に対して証明書が発行されなかったことを無視します。

IgnoreInvalidName 64

証明書の検証を決定するときに、証明書に無効な名前があることを無視します。

IgnoreInvalidPolicy 128

証明書の検証を決定するときに、証明書に無効なポリシーがあることを無視します。

IgnoreEndRevocationUnknown 256

証明書の検証を決定するときに、エンド証明書 (ユーザー証明書) の失効が不明であることを無視します。

IgnoreCtlSignerRevocationUnknown 512

証明書の検証を決定するときに、証明書信頼リスト (CTL) 署名者の失効が不明であることを無視します。

IgnoreCertificateAuthorityRevocationUnknown 1024

証明書の検証を決定するときに、証明機関の失効が不明であることを無視します。

IgnoreRootRevocationUnknown 2048

証明書の検証を決定するときに、ルート失効が不明であることを無視します。

AllFlags 4095

検証に関連するすべてのフラグが含まれます。

次の例では、現在のユーザーの個人用証明書ストアを開き、ユーザーが証明書を選択できるようにしてから、証明書と証明書チェーンの情報をコンソールに書き込みます。 出力は、選択した証明書によって異なります。

//Output chain information of the selected certificate.
X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.Build (certificate);
Console.WriteLine ("Chain Information");
Console.WriteLine ("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag);
Console.WriteLine ("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode);
Console.WriteLine ("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags);
Console.WriteLine ("Chain verification time: {0}", ch.ChainPolicy.VerificationTime);
Console.WriteLine ("Chain status length: {0}", ch.ChainStatus.Length);
Console.WriteLine ("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count);
Console.WriteLine ("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine);
'Output chain information of the selected certificate.
Dim ch As New X509Chain()
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online
ch.Build(certificate)
Console.WriteLine("Chain Information")
Console.WriteLine("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag)
Console.WriteLine("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode)
Console.WriteLine("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags)
Console.WriteLine("Chain verification time: {0}", ch.ChainPolicy.VerificationTime)
Console.WriteLine("Chain status length: {0}", ch.ChainStatus.Length)
Console.WriteLine("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count)
Console.WriteLine("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine)

注釈

これらのフラグは、チェーン検証を実行する条件を示します。 たとえば、アプリケーションでチェーン内の証明書の時刻値を有効にする必要がない場合は、IgnoreNotTimeValid フラグを使用できます。

適用対象