X509VerificationFlags 列挙型
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
X509 チェーン内の証明書の検証を実行する条件を指定します。
この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。
public enum class X509VerificationFlags
[System.Flags]
public enum X509VerificationFlags
[<System.Flags>]
type X509VerificationFlags =
Public Enum 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 フラグを使用できます。
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。