AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 111625
In Process
Nick
Nick
Asked: 2010-02-11 09:51:58 +0800 CST2010-02-11 09:51:58 +0800 CST 2010-02-11 09:51:58 +0800 CST

OpenSSL x509 目的标志“任何目的”这是什么?

  • 772

使用以下内容查看证书的详细信息:

openssl x509 -noout -text -purpose -in mycert.pem

我发现了一堆目的标志(我发现它们是由附加到证书的各种扩展设置的)。

这些目的标志之一是“任何目的”。我似乎找不到关于这个标志的任何文档以及为什么或为什么不设置它。

你们有谁知道我在哪里可以找到有关此目的的更多信息以及这意味着什么?

谢谢,

certificate openssl x509 flags
  • 7 7 个回答
  • 20899 Views

7 个回答

  • Voted
  1. SlowTurtle
    2016-12-28T03:36:46+08:002016-12-28T03:36:46+08:00

    的Any Purpose : Yes和Any Purpose CA : Yes线openssl x509 -purpose是特殊的。它是特定于 openssl 的,表示当与不检查扩展的古老软件版本一起使用时将验证证书的内容。

    不能关闭或禁用这些特定用途标志。从 openssl 源代码检查在 openssl/crypto/x509v3/v3_purp.c 中定义为静态 X509_PURPOSE xstandard[] = { ... }。X509_PURPOSE_ANY 检查验证函数返回 1。

    与此标志最接近的官方文档可能是 Stephen N. Henson 博士撰写的这些帖子,他撰写了 v3_purp.c - http://marc.info/?l=openssl-users&m=96219426811480和http://openssl.6102.n7 .nabble.com/quot-critical-CA-FALSE-quot-but-quot-Any-Purpose-CA-Yes-quot-td29933.html。

    引用史蒂夫的话:

    ''任何目的'设置是允许任何东西通过并且根本不执行任何检查的东西。它最初是作为人们在别无选择并且可以承受后果时使用损坏证书的一种方式......从那时起,即使设置了“任何目的”,CA 检查也已在代码中强制执行。因此,如果您实际上尝试将该证书用作 CA,它将被拒绝。

    • 5
  2. Boris
    2014-07-01T03:25:39+08:002014-07-01T03:25:39+08:00

    KeyUsage 是一个 v3 扩展,它可能存在也可能不存在于证书中。

    id-ce-keyUsage 值的有用(如果有点过时)摘要: http ://www.alvestrand.no/objectid/2.5.29.15.html [新增值是 7 = encipherOnly 和 8 = decipherOnly]

    诀窍是这个“OID=2.5.29.15 keyUsage 扩展”/可能会或可能不会/出现在特定的证书中。

    OpenSSL 可能对 PURPOSE_ANY 的假设是,此扩展是 / 不存在 /,因此“取决于您自己的策略”来决定使用或不使用它。否则,没有对应于“ANY”的位图值......

    • 2
  3. mlp
    2012-08-20T17:45:50+08:002012-08-20T17:45:50+08:00

    在 X.509 证书中,与大多数其他情况一样,如果一个术语没有明确定义,那么它会从其直接周围的上下文中继承含义。如果那个上下文是“生活”,那么“任何目的”这个词的字面意思就是这个意思。

    因此,请检查颁发 CA 的证书政策、订户协议和信赖方协议,如果他们对标志只字未提,那么这意味着它在盒子上所说的内容。

    • 1
  4. Wisdom
    2015-09-21T00:16:00+08:002015-09-21T00:16:00+08:00

    通常我在根 CA 上设置“AnyPurpose”(这意味着这是根,可以向任何其他中间或子 CA 颁发证书),然后,在颁发中间 CA 时,我设置了限制......

    我的根 CA 有:

    • AnyPolice 2.5.29.32.0,
    • CA:真 2.5.4.37,
    • 任何目的 2.5.29.15,
    • 数字签名 2.5.4.37.3,
    • CRL 分发点 2.5.29.31,

    例如,在我的中间 TLS CA 上,我设置:

    • Web ServerAuth TLS 1.3.6.1.5.5.7.3.1,
    • Web 客户端身份验证 1.3.6.1.5.5.7.3.2

    这是限制 TLS CA 从根 CA 的所有属性继承(此处应用的限制性 OID 将仅允许签署 TLS 证书,并且使用 pathlen:0 我将禁止子 CA)。

    一切都取决于您如何设置 PKI 基础架构。

    在我的网络上,我为每个目的做一个中间 CA,例如:

    • 电子邮件的中间 CA
    • 用于 TLS 的中间 CA
    • 软件的中间 CA
    • 身份的中间 CA
    • 组件的中间 CA

    这样,如果邮件证书有问题,我只需要撤销电子邮件 CA,而所有其他中间 CA 都可以。

    例如,大型证书颁发机构有一个专用于 EV 的中间 CA。

    注意:这是针对个人 PKI 的,如果您希望按照 RFC 和最佳实践(如大型证书颁发机构)做一些事情,那么还有很多额外的步骤,比如包括更多的 OID 并设置所有它们......

    例如,您可以在此链接上阅读一些标准:

    https://cabforum.org/wp-content/uploads/Baseline_Requirements_V1.pdf

    另一个例子,对于 EV 证书,有很多额外的步骤来设置 OID:

    • 域验证 2.23.140.1.2.1
    • 组织验证 2.23.140.1.2.2

    而且由于我的设置不需要这些,因此我没有花时间搜索和测试必要的 OID 以使其正常工作

    • 1
  5. tajh
    2010-02-11T10:21:12+08:002010-02-11T10:21:12+08:00

    来自:http ://en.wikipedia.org/wiki/Digital_certificate

    Key-Usage:公钥的用途(例如加密、签名、证书签名...)。

    请参阅 openssl 文档中的 - purpose 标志: http ://www.openssl.org/docs/apps/x509.html#CERTIFICATE_EXTENSIONS

    • 0
  6. Falcon Momot
    2012-08-20T18:06:20+08:002012-08-20T18:06:20+08:00

    大多数证书的颁发都有其受限的目的(或一组目的),例如客户端身份验证、服务器身份验证、密钥交换和代码签名。如果它们用于未经认可的目的(例如,使用您的电子邮件证书签署代码),则它们无效。

    任何用途扩展仅仅意味着证书应该始终通过使用限制,这与说它对所有用途都有效相同。

    • 0
  7. Adam Williamson
    2015-01-16T00:38:16+08:002015-01-16T00:38:16+08:00

    OpenSSL 的“目的”不仅仅是对 v3 证书的密钥使用扩展的直接反映。

    OpenSSL 本身定义了一组“目的”,然后具有一些逻辑来确定给定证书是否与基于证书扩展的所选目的一致 - 包括但不限于密钥使用和扩展密钥使用扩展。

    '任何目的'是你得到的,如果你传递-purpose any或openssl verify如果你编写代码,使用例如将 OpenSSL 上下文的目的设置为'任何'值SSL_CTX_set_purpose()。

    大多数目的都记录在man x509部分中CERTIFICATE EXTENSIONS-它解释了证书必须具有哪些属性才能对给定目的有效-但这并没有记录any目的。在源代码的顶部,crypto/x509v3/v3_purp.c您可以看到为X509_PURPOSE_ANYis运行的检查函数no_check(),它只返回 1:实际上它禁用了目的检查。

    我不确定您是否可以设计出任何证书都无效的情况any。我也不确定将目的设置为any和根本不设置目的之间有什么区别,这应该会导致完全绕过目的检查。

    具体来说,OpenSSL 的X509_PURPOSE_ANY/“任何目的”/-purpose any概念与RFC 5280 anyExtendedKeyUsage KeyPurposeId 不同。

    • 0

相关问题

  • 为 IIS 7.0 问题创建证书

  • CodeCollaborator svn 访问

  • 为 IIS6 自行生成 SSL 证书?

  • 如何模拟连接到 HTTPS 并记录握手?

  • SQL Server 2000 加密证书

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve