X509Chain.Build()方法解释

2024-01-31

我想验证证书链,我得到了X509Certificate2集合并必须验证所有证书是否构建一条链。

通常,为了验证证书链,我应该从叶证书中获取数字签名并检查它是否由根证书签名 -but在.NET中我找不到从X509Certificate2目的。

因此,我想到使用X509Chain.Build()方法如下:

   void ValidateChain(X509Certificate2Collection collection, X509Certificate2 leaf)
    {
        X509Chain x509Chain = new X509Chain();
        x509Chain.ChainPolicy.ExtraStore.AddRange(collection);
        bool isValid = x509Chain.Build(leaf); 
    }

但我对构建方法有一些疑问:

  1. 据我了解,该连锁店也是从我的电脑商店建立的,我希望它仅是从ExtraStore,我如何定义这种行为?
  2. 我看到链建立后它不包含根证书;我的问题是why,以及如何验证链是否具有根 CA,因为这不是链元素的一部分。

如果有人能向我解释如何Build()方法有效。


您应该在构建操作后使用 ChainStatus 值。 MSDN 参考here https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.x509chain?view=net-5.0:

X509Chain 对象有一个名为 ChainStatus 的全局错误状态,应用于证书验证。管理证书验证的规则很复杂,并且很容易通过忽略所涉及的一个或多个元素的错误状态来过度简化验证逻辑。全局错误状态考虑了链中每个元素的状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

X509Chain.Build()方法解释 的相关文章

随机推荐

  • 以编程方式创建 WebView 并在视图中显示 NSString

    我以编程方式创建了一个 WebView 这很完美 代码如下 我现在需要尝试做的是注入NSStrings进去 我有一个包含 30 个字符串的数组 15 个标题和 15 个正文 是否可以将这些内容显示在 WebView 中 我猜我需要将它们更改
  • 错误:由以下原因引起:java.lang.ClassnotfoundException [重复]

    这个问题在这里已经有答案了 我对编码非常陌生 这是我的第一个应用程序 非常令人沮丧的是 当在设备或模拟器上运行所述应用程序时 出现 不幸的是 应用程序名称已停止 错误 我相信 通过查看 LogCat 我已经将问题定位到错误 java lan
  • 为什么final类不能被继承,而final方法却可以被继承?

    我对类和方法之间 final 关键字的使用有很大的困惑 即为什么final方法只支持继承 而不支持final类 final class A void print System out println Hello World class Fi
  • 如何创建对象列表?

    如何在 Python 中创建对象 类实例 列表 或者这是糟糕设计的结果 我需要这个 因为我有不同的对象 我需要在稍后阶段处理它们 所以我会继续将它们添加到列表中并稍后调用它们 存储对象实例列表非常简单 class MyClass objec
  • Berkeley DB 的最佳 Python 模块? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 根据 Python 2 6 5 文档 1 bsddb 模块已在 Python 3 0 中被弃用并删除
  • 为我的 Android 应用程序选择正确的 API 级别

    我目前有一个针对 android 2 3 api level 10 的应用程序 但我认为probably使用 android 2 1 2 2 或更早版本的人甚至无法在市场上看到该应用程序 所以我认为使用 api level 3 是最好的选择
  • 如何使用 usingColumns 连接 Spark 中的嵌套列

    我有 2 个数据框想要加入 DF1 root myStruct struct nullable true id string nullable true region long nullable true first name string
  • 如何使用 Laravel 管理 OAuth 刷新令牌?

    Socialiate 插件在 Laravel 中提供了 OAuth 的实现 但它的设计似乎主要是为了让他们不必在您自己的网站上创建用户帐户 我正在制作一个帮助管理他们的 Youtube 帐户的应用程序 这意味着身份验证请求的范围更广泛 很容
  • kinect C# 从保存的数据中绘制和移动骨架

    我想要做的是从保存的数据中绘制骨架并为其设置动画 就像我们可以对传感器流所做的那样 所以我有每个关节的 x y 和 z 值 我搜索了很多 但找不到任何可以帮助我的东西 我可以将数据转换为关节集合 将其与骨架关联 但是然后呢 我不知道如何将骨
  • 在 python 中向 csv 文件添加新列

    我正在尝试将一列添加到 csv 文件中 该文件组合了其他两列中的字符串 每当我尝试此操作时 我要么得到仅包含新列的输出 csv 要么得到包含所有原始数据而不是新列的输出 这是我到目前为止所拥有的 with open filename as
  • Vuejs上下文中chartjs的图表闪烁和getcontext错误

    您好 我正在尝试通过调用 API 使用 Chartjs 显示不同的图表 下面的代码显示了我如何格式化chart vue 图表 vue
  • Python 是否有与 Memcpy 等效的工具

    我正在尝试移植一些 C 代码 但由于我尝试使用 ctypes 不起作用 使用 memcpy 我真的陷入困境 我希望找到一种使用 memcpy 等效函数的 python 方法 有任何想法吗 这是我尝试移植的 C 代码示例 i l 5 t ht
  • 类型错误:预期的字符串或类似字节的对象 pandas 变量

    我有这样的数据集 import pandas as pd df pd DataFrame word abs e learning abs e learning abs e learning abs elearning 我想要得到 word
  • 在 Boost Test 框架中测试断言

    我使用 Boost Test 框架对我的 C 代码进行单元测试 并想知道是否可以测试函数是否会断言 是的 听起来有点奇怪 但请耐心听我说 我的许多函数在输入时检查输入参数 断言它们是否无效 对此进行测试将很有用 例如 void MyFunc
  • 如何在不使用 typeid/RTTI 的情况下确定实际对象的类型

    我有一个类层次结构 其中子类派生自父类 在一个地方 我需要将任何类型的对象存储 队列 到列表 list Parent 中 然后从该列表中检索对象 存储时 我存储的是指针 它指向最顶层的父类 检索时 我需要了解它实际上是哪个子对象 以便能够通
  • Django Rest Framework 序列化器单独渲染表单

    我知道如何将序列化器的形式作为一个整体呈现 但我不知道如何单独呈现它 类似于模板上的 django 表单 form name form name errors 我当前的文件和代码如下 模型 py Create your models her
  • HTML 不再在 JLabel(和其他组件)中工作

    我有一个我编写的java小程序 并且已经运行了很长一段时间 在小程序中 我有一堆在文本内容中使用 HTML 的 JLabel 这是允许的 并且已经工作多年 我使用 HTML 的主要原因是允许在 JLabels 中换行 问题 最近 包含 HT
  • 系统头文件/usr/include/i386_types.h错误

    我已经使用 C C 大约 7 个月了 目前正在尝试编写一小组线性代数程序 现在我正在尝试测试我的向量类 但收到错误消息 In file included from usr include machine types h 34 from us
  • Rails 4 博客 /:year/:month/:title 具有清晰的路由

    Rails 4 中还有另一种更简洁的方式来实现路由 例如 blog 2014 8 blog post title blog 2014 8 blog 2014 blog 2014 8 tags tag 1 tag 2 page 4 blog
  • X509Chain.Build()方法解释

    我想验证证书链 我得到了X509Certificate2集合并必须验证所有证书是否构建一条链 通常 为了验证证书链 我应该从叶证书中获取数字签名并检查它是否由根证书签名 but在 NET中我找不到从X509Certificate2目的 因此