B.3. 标准 X.509 v3 证书扩展参考


X.509 v3 证书包含一个扩展字段,允许向证书中添加任意数量的附加字段。证书扩展提供了一种方式,如替代主题名称和对证书的使用限制。在定义了 PKIX 部分 1 标准之前开发的旧版 Netscape 服务器(如 Red Hat Directory Server 和 Red Hat Certificate System)需要 Netscape 特定的扩展。

以下是包含 X.509 v3 扩展的证书部分的示例。证书系统可以以可读的用户打印格式显示证书,如下所示。如本例所示,证书扩展按顺序出现,且每个证书只能显示一个特定扩展实例;例如,证书只能包含一个主题密钥标识符扩展。支持这些扩展的证书具有版本 0x2 (对应于版本 3)。

例 B.4. 用户打印证书扩展示例

Data:
  Version:  v3
  Serial Number: 0x1
  Signature Algorithm: SHA1withRSA - 1.2.840.113549.1.1.5
  Issuer: CN=Certificate Manager,OU=netscape,O=ExampleCorp,L=MV,ST=CA,C=US
  Validity:
    Not Before: Friday, February 21, 2005 12:00:00 AM PST America/Los_Angeles
    Not  After: Monday, February 21, 2007 12:00:00 AM PST America/Los_Angeles
  Subject: CN=Certificate Manager,OU=netscape,O=ExampleCorp,L=MV,ST=CA,C=US
  Subject Public Key Info:
    Algorithm: RSA - 1.2.840.113549.1.1.1
    Public Key:
      Exponent: 65537
      Public Key Modulus: (2048 bits) :
        E4:71:2A:CE:E4:24:DC:C4:AB:DF:A3:2E:80:42:0B:D9:
        CF:90:BE:88:4A:5C:C5:B3:73:BF:49:4D:77:31:8A:88:
        15:A7:56:5F:E4:93:68:83:00:BB:4F:C0:47:03:67:F1:
        30:79:43:08:1C:28:A8:97:70:40:CA:64:FA:9E:42:DF:
        35:3D:0E:75:C6:B9:F2:47:0B:D5:CE:24:DD:0A:F7:84:
        4E:FA:16:29:3B:91:D3:EE:24:E9:AF:F6:A1:49:E1:96:
        70:DE:6F:B2:BE:3A:07:1A:0B:FD:FE:2F:75:FD:F9:FC:
        63:69:36:B6:5B:09:C6:84:92:17:9C:3E:64:C3:C4:C9
  Extensions:
    Identifier: Netscape Certificate Type - 2.16.840.1.113730.1.1
      Critical: no
      Certificate Usage:
        SSL CA
        Secure Email CA
        ObjectSigning CA
    Identifier: Basic Constraints - 2.5.29.19
      Critical: yes
      Is CA: yes
      Path Length Constraint: UNLIMITED
    Identifier: Subject Key Identifier - 2.5.29.14
      Critical: no
      Key Identifier:
        3B:46:83:85:27:BC:F5:9D:8E:63:E3:BE:79:EF:AF:79:
        9C:37:85:84
    Identifier: Authority Key Identifier - 2.5.29.35
      Critical: no
      Key Identifier:
        3B:46:83:85:27:BC:F5:9D:8E:63:E3:BE:79:EF:AF:79:
        9C:37:85:84
    Identifier: Key Usage: - 2.5.29.15
      Critical: yes
      Key Usage:
        Digital Signature
        Key CertSign
        Crl Sign
  Signature:
    Algorithm: SHA1withRSA - 1.2.840.113549.1.1.5
    Signature:
      AA:96:65:3D:10:FA:C7:0B:74:38:2D:93:54:32:C0:5B:
      2F:18:93:E9:7C:32:E6:A4:4F:4E:38:93:61:83:3A:6A:
      A2:11:91:C2:D2:A3:48:07:6C:07:54:A8:B8:42:0E:B4:
      E4:AE:42:B4:B5:36:24:46:4F:83:61:64:13:69:03:DF:
      41:88:0B:CB:39:57:8C:6B:9F:52:7E:26:F9:24:5E:E7:
      BC:FB:FD:93:13:AF:24:3A:8F:DB:E3:DC:C9:F9:1F:67:
      A8:BD:0B:95:84:9D:EB:FC:02:95:A0:49:2C:05:D4:B0:
      35:EA:A6:80:30:20:FF:B1:85:C8:4B:74:D9:DC:BB:50

对象标识符 (OID)是识别唯一对象(如证书扩展或公司的证书实践声明)的数字字符串。证书系统附带一组特定于扩展的配置集插件模块,它们使 X.509 证书扩展能够添加到服务器问题的证书中。有些扩展包含用于指定 OID 的字段。

PKIX 标准建议以 OID 的形式包含证书中使用的所有对象,如扩展和语句。这促进了共享网络上的机构之间的互操作性。如果证书将在共享网络上使用,请使用适当的注册机构注册 OID 前缀。

OID 由国际标准机构(ISO)注册机构控制。在某些情况下,此授权由 ISO 委派给区域注册机构。在美国,美国国家标准研究所(ANSI)管理此注册。

使用 OID 注册到另一个机构,或者无法注册 OID 可能会导致法律后果,具体取决于这种情况。注册可能取决于费用。如需更多信息,请联系适当的注册机构。

要为自定义对象定义或分配 OID,请为私有企业知道公司的 arc,这是 OID。如果公司没有 arc,则需要获得一个。http://www.alvestrand.no/objectid/ 包含有关注册和使用 OID 的更多信息。

例如,名为 Netscape 的扩展名为 Netscape Certificate Comment 的 Netscape 定义 OID 是 2.16.840.1.113730.1.13。分配给此扩展的 OID 是分层的,包括以前的 Netscape 公司 arc, 2.16.840.1。OID 定义条目是 http://www.alvestrand.no/objectid/2.16.840.1.113730.1.13.html

如果证书中存在 OID 扩展并标记为 critical,则验证证书的应用程序必须能够解释扩展,包括任何可选的限定符,或者必须拒绝证书。由于所有应用程序都不太可能解释以 OID 形式嵌入公司的自定义扩展,因此 PKIX 标准建议将扩展始终标记为非关键。

本节总结了定义为 Internet X.509 版本 3 标准的一部分定义的扩展类型,并指示 PKIX 工作组建议哪些类型。

本参考总结了每个证书的重要信息。有关完整详情,请参阅来自 ITU 的 X.509 v3 标准,以及来自 ITU 的 Internet X.509 公钥基础架构 - 证书和 CRL 配置文件( RFC 3 280 )。扩展的描述参考了讨论扩展名的标准草案的 RFC 和章节号;也提供了每个扩展的对象标识符(OID)。

证书中的每个扩展都可以指定为 critical 或 noncritical。如果证书使用的系统(如 Web 浏览器),如果证书遇到无法识别的关键扩展,则必须拒绝该证书。但是,如果无法识别,则非关键扩展可以忽略。

B.3.1. authorityInfoAccess

授权信息访问扩展指示如何和访问证书签发者信息的位置。扩展包含一个 accessMethodaccessLocation 字段。accessMethod 由 OID 指定在 accessLocation 中有关签发者的信息和格式。

PKIX Part 1 定义一个 accessMethod (id-ad-caIssuers),以获取比使用扩展名的证书在 CA 链中发布的证书的 CA 列表。然后,accessLocation 字段通常包含一个 URL,指示用于检索列表的位置和协议(LDAP、HTTP 或 FTP)。

位于 RFC 2560 的在线证书状态协议(RFC 2560)定义了 accessMethod (id-ad-ocsp),以使用 OCSP 验证证书。然后,accessLocation 字段包含一个 URL,指示用于访问可以验证证书的 OCSP 响应器的位置和协议。

OID

1.3.6.1.5.5.7.1.1

严重性

此扩展必须是非关键的。

B.3.2. authorityKeyIdentifier

授权密钥标识符扩展标识与用于签署证书的私钥对应的公钥。当签发者有多个签名密钥时,比如续订 CA 证书时,此扩展很有用。

扩展由以下之一或两个组成:

  • keyIdentifier 字段中设置的显式密钥标识符
  • authorityCertIssuer 字段中设置的签发者,以及序列号,在 authorityCertSerialNumber 字段中设置,标识证书

如果存在 keyIdentifier 字段,则会使用它来选择具有匹配 subjectKeyIdentifier 扩展的证书。如果存在 authorityCertIssuerauthorityCertSerialNumber 字段,则使用它们来识别由 issuerserialNumber 的正确证书。

如果没有此扩展,则单独使用签发者名称来识别签发者证书。

PKIX 第 1 部分要求除自签名 root CA 证书以外的所有证书进行此扩展。如果没有建立密钥标识符,PKIX 建议指定 authorityCertIssuerauthorityCertSerialNumber 字段。这些字段允许根据主题证书的 Authority Key Identifier 扩展中的 SubjectNameCertificate SerialNumber 字段来构建完整的证书链。

OID

2.5.29.35

严重性

此扩展始终是非关键的,总是被评估。

B.3.3. basicConstraints

此扩展在证书链验证过程中用于识别 CA 证书,并应用证书链路径长度限制。所有 CA 证书的 cA 组件应设置为 true。PKIX 建议不应出现在最终用户证书中。

如果存在 pathLenConstraint 组件,则其值必须大于目前为止处理的 CA 证书数量,从最终用户证书开始并移动链。如果省略 pathLenConstraint,则链中的所有较高级别 CA 证书在扩展存在时不得包含此组件。

OID

2.5.29.19

严重性

PKIX 第 1 部分要求此扩展标记为 critical。无论其关键性如何,此扩展都会进行评估。

B.3.4. certificatePoliciesExt

证书策略扩展定义了一个或多个策略,各自由 OID 和可选的限定符组成。扩展可以包括到签发者证书声明的 URI,也可以以文本形式嵌入签发者信息。此信息可供启用了证书的应用程序使用。

如果存在此扩展,PKIX Part 1 建议仅用 OID (如有必要)来标识策略,或者仅有某些推荐的限定符。

OID

2.5.29.32

严重性

此扩展可能是关键或非关键的。

B.3.5. CRLDistributionPoints

此扩展定义了如何获取 CRL 信息。如果系统被配置为使用 CRL 发布点,则应使用它。

如果扩展包含将类型设置为 URI 的 DistributionPointName,则 URI 假定为指向当前 CRL 的指针,因为指定的撤销原因,并将由命名的 cRLIssuer 发布。URI 的预期值是为 Subject Alternative Name 扩展定义的。如果 distributionPoint 省略原因,则所有原因都必须包含撤销。如果 distributionPoint 省略了 cRLIssuer,则必须由签发证书的 CA 发布 CRL。

PKIX 建议 CA 和应用支持此扩展。

OID

2.5.29.31

严重性

PKIX 建议此扩展标记为非关键,并且支持所有证书。

B.3.6. extKeyUsage

扩展的密钥用法扩展指示可以使用认证公钥的目的。这些目的可能是在 Key Usage 扩展中指示的基本目的的添加或代替。

Extended Key Usage 扩展必须在 OCSP 响应程序的证书中包含 OCSP 签名,除非响应者验证的证书签名的 CA 签名密钥也是 OCSP 签名密钥。OCSP 响应器的证书需要直接由签署响应者将验证的证书的 CA 直接发布。

Key Usage, Extended Key Usage, 和 Basic Constraints 扩展一起用来定义证书旨在使用的目的。应用程序可以使用这些扩展来禁止使用证书不当的上下文。

下表分别列出 PKIX 定义用于此扩展名的使用,并且使用 Netscape 专用定义的。

OID

2.5.29.37

严重性

如果此扩展标记为 critical,则必须只将证书用于其中一个指定目的。如果没有标记为 critical,它将被视为公告字段,该字段可用于识别密钥,但不会将证书的使用限制为指定目的。

Expand
表 B.36. PKIX 扩展的密钥用法扩展使用
使用OID

服务器身份验证

1.3.6.1.5.5.7.3.1

客户端身份验证

1.3.6.1.5.5.7.3.2

代码签名

1.3.6.1.5.5.7.3.3

电子邮件

1.3.6.1.5.5.7.3.4

时间戳

1.3.6.1.5.5.7.3.8

OCSP 签名

1.3.6.1.5.5.7.3.9[a]

[a] OCSP 签名没有在 PKIX 第 1 部分定义,而是在 RFC 2560 中,X.509 互联网公钥基础架构在线证书状态协议 - OCSP.
Expand
表 B.37. 私有扩展的密钥用法扩展使用
使用OID

证书信任列表签名

1.3.6.1.4.1.311.10.3.1

Microsoft Server Gated Crypto (SGC)

1.3.6.1.4.1.311.10.3.3

Microsoft 加密的文件系统

1.3.6.1.4.1.311.10.3.4

Netscape SGC

2.16.840.1.113730.4.1

B.3.7. issuerAltName extension

Issuer Alternative Name 扩展用于将互联网风格的身份与证书签发者相关联。名称必须使用为 Subject Alternative Name 扩展定义的表单。

OID

2.5.29.18

严重性

PKIX 第 1 部分建议将此扩展标记为非关键。

B.3.8. keyUsage

Key Usage 扩展定义证书中包含的密钥目的。Key Usage, Extended Key Usage, 和 Basic Constraints 扩展一起指定可使用证书的目的。

如果根本包含此扩展,请按如下所示设置位:

  • 用于 SSL 客户端证书、S/MIME 签名证书和对象签名证书的 数字签名 (0)。
  • 用于某些 S/MIME 签名证书和对象签名证书的 非Repudiation (1)。

    WARNING

    使用这个位的使用是 conoversial。在为任何证书设置之前,请仔细考虑其使用的法律后果。

  • 用于 SSL 服务器证书和 S/MIME 加密证书的密钥加密(2)。
  • 当主题的公钥用于加密用户数据而不是密钥材料时,Data Encipherment (3)。
  • 当主题的公钥用于 密钥协议时,KeyAgre ement (4)
  • 所有 CA 签名证书的 keyCertSign (5)。
  • 用于签署 CRL 的 CA 签名证书的 cRLSign (6)。
  • 如果公钥仅用于加密数据,则为 encipherOnly (7)。如果设置了这个位,则还应设置 keyAgreement
  • 如果公钥仅用于解码数据,则解压缩(8)。如果设置了这个位,则还应设置 keyAgreement

表 B.38 “证书使用和对应的密钥使用位” 总结了典型证书使用指南。

如果 keyUsage 扩展存在并标记为 critical,则使用它强制使用证书和密钥。扩展用于限制密钥的使用;如果扩展不存在或不重要,则允许所有类型的使用。

如果存在 keyUsage 扩展(critical 或 not),则会使用它从给定操作的多个证书中进行选择。例如,它用于区分操作有独立证书和密钥对的用户的签名和加密证书。

OID

2.5.29.15

严重性

此扩展可能是关键或非关键的。PKIX 第 1 部分建议如果正在使用,则应将其标记为重要。

Expand
表 B.38. 证书使用和对应的密钥使用位
证书目的所需的密钥使用位

CA 签名

  • keyCertSign
  • cRLSign

SSL 客户端

digitalSignature

SSL 服务器

keyEncipherment

s/MIME Signing

digitalSignature

s/MIME 加密

keyEncipherment

证书签名

keyCertSign

对象签名

digitalSignature

B.3.9. nameConstraints

此扩展只能用于 CA 证书,在其中定义在认证路径中后续证书中的所有主题名称必须所在的命名空间。

OID

2.5.29.30

严重性

PKIX 第 1 部分要求此扩展标记为 critical。

B.3.10. OCSPNocheck

扩展旨在包含在 OCSP 签名证书中。扩展告诉 OCSP 客户端,在没有查询 OCSP 响应程序的情况下可以信任签名证书(因为回复会再次由 OCSP 响应程序签名,因此客户端会再次请求签名证书的有效性状态)。此扩展为 null-valued;其含义由其存在或不存在来决定。

由于证书中存在此扩展将导致 OCSP 客户端信任使用该证书签名的响应,因此应仔细管理此扩展。如果 OCSP 签名密钥被破坏,在证书有效期期间验证证书的整体过程将会受到影响。因此,使用 OCSPNocheck 的证书应该使用短生命周期发布并经常续订。

OID

1.3.6.1.5.5.7.48.4

严重性

此扩展应该是非关键的。

B.3.11. policyConstraints

此扩展仅用于 CA 证书,以两种方式限制路径验证。它可用于禁止策略映射,或要求路径中的每个证书都包含可接受的策略标识符。

PKIX 要求,如果存在,则此扩展不得由 null 序列组成。至少一个可用字段必须存在。

OID

2.5.29.36

严重性

此扩展可能是关键或非关键的。

B.3.12. policyMappings

Policy Mappings 扩展仅在 CA 证书中使用。它列出了一个或多个 OID 对,用于指示一个 CA 的对应策略等同于另一个 CA 的策略。它在跨对证书的上下文中可能有用。

此扩展可由 CA 和应用程序支持。

OID

2.5.29.33

严重性

此扩展必须是非关键的。

B.3.13. privateKeyUsagePeriod

Private Key Usage Period 扩展允许证书签发者为私钥指定与证书本身不同的有效期周期。此扩展用于数字签名密钥。

注意

PKIX Part 1 建议不要使用此扩展名。符合 PKIX 第 1 部分的 CA 不得 在此扩展生成证书。

OID

2.5.29.16

B.3.14. subjectAltName

Subject Alternative Name 扩展包括一个或多个替代(非 X.500)名称,用于 CA 与认证的公钥绑定的身份。除了证书的主题名称或替换它外,也可以使用它。定义的名称表单包括 Internet 电子邮件地址(SMTP,如 RFC-822 中定义的)、DNS 名称、IP 地址(IPv4 和 IPv6)以及统一的资源标识符(URI)。

PKIX 对通过名称形式标识的实体(除 subject 字段中使用的 X.500 可分辨名称(DN)以外的实体)进行此扩展。PKIX 第 1 部分描述此扩展与主题字段之间的关系的其他规则。

电子邮件地址可以在 Subject Alternative Name 扩展、证书主题名称字段或两者中提供。如果电子邮件地址是主题名称的一部分,则必须采用 PKCS #9 定义的 EmailAddress 属性的形式。支持 S/MIME 的软件必须能够从 Subject Alternative Name 扩展或主题名称字段中读取电子邮件地址。

OID

2.5.29.17

严重性

如果证书的 subject 字段为空,此扩展必须被标记为 critical。

B.3.15. subjectDirectoryAttributes

Subject Directory Attributes 扩展会传递证书主题的任何所需的目录属性值。不建议作为所提议的 PKIX 标准的基本部分,但可能在本地环境中使用。

OID

2.5.29.9

严重性

PKIX 第 1 部分要求此扩展标记为非关键。

B.3.16. subjectKeyIdentifier

主题密钥标识符扩展标识此证书认证的公钥。此扩展提供了一种方式,在给定主题名称有多个时区分公钥。

此扩展的值应通过执行证书的 DER-encoded subjectPublicKey 的 SHA-1 哈希来计算,如 PKIX 推荐的。主题密钥标识符扩展与 CA 证书的授权密钥标识符扩展一起使用。如果 CA 证书有 Subject Key Identifier 扩展,则被验证的证书的授权密钥标识符扩展应该与 CA 的主题密钥标识符扩展匹配。在这种情况下,verifier 不需要重新计算密钥标识符。

PKIX Part 1 需要对所有 CA 证书进行此扩展,并为所有其他证书推荐此扩展。

OID

2.5.29.14

严重性

这个扩展始终是非关键的。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部