X509VerificationFlags 列挙型

定義

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

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

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

フィールド

AllFlags 4095

検証に関するすべてのフラグが有効になります。

AllowUnknownCertificateAuthority 16

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

IgnoreCertificateAuthorityRevocationUnknown 1024

証明書の検証時に証明機関の失効状態が不明であった場合でも無視します。

IgnoreCtlNotTimeValid 2

証明書の検証時に、CTL の有効期限切れなど、証明書信頼リスト (CTL) が無効であっても無視します。

IgnoreCtlSignerRevocationUnknown 512

証明書の検証時に、証明書信頼リスト (CTL) の署名主の失効状態が不明であった場合でも無視します。

IgnoreEndRevocationUnknown 256

証明書の検証時に、終了証明書 (ユーザー証明書) の失効状態が不明であった場合でも無視します。

IgnoreInvalidBasicConstraints 8

証明書の検証時に、基本制約が無効であった場合でも無視します。

IgnoreInvalidName 64

証明書の検証時に、証明書の名前が無効であった場合でも無視します。

IgnoreInvalidPolicy 128

証明書の検証時に、証明書に無効なポリシーが存在していた場合でも無視します。

IgnoreNotTimeNested 4

証明書の検証時、有効期間が正しくネストされていない、つまり、発行された証明書の有効期間が CA (証明機関) 証明書の有効期間を超えていた場合でも無視します。 たとえば、CA の証明書が 1 月 1 日から 12 月 1 日まで有効であり、発行された証明書が 1 月 2 日から 12 月 2 日まで有効である場合は、有効期間が入れ子になっていないことを意味します。

IgnoreNotTimeValid 1

証明書の検証時、チェインに存在する証明書が、有効期限切れや、まだ有効開始日が来ていないなどの理由で無効であった場合でも無視します。

IgnoreRootRevocationUnknown 2048

証明書の検証時にルートの失効状態が不明であった場合でも無視します。

IgnoreWrongUsage 32

証明書の検証時に、証明書の使用目的上の違反が見つかった場合でも無視します。

NoFlag 0

検証に関するフラグはすべて無効になります。

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

//Output chain information of the selected certificate.
X509Chain ^ ch = gcnew 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.
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 フラグを使用できます。

適用対象