在x509标准中的位置
Issuer
颁发者字段标识已签署和颁发证书的实体。 颁发者字段必须包含一个非空的可分辨名称 (DN)。 颁发者字段定义为 X.501 类型名称 [X.501]。 名称由以下 ASN.1 结构定义:
Name 描述了一个由属性组成的分层名称,例如国家名称,以及相应的值,例如 US。 组件AttributeValue的类型由AttributeType决定; 通常它将是一个 DirectoryString。 DirectoryString 类型被定义为 PrintableString、TeletexString、BMPString、UTF8String 和 UniversalString 的选择。 符合此配置文件的 CA 必须使用 DirectoryString 的 PrintableString 或 UTF8String 编码,但有两个例外。 当 CA 先前颁发的证书的颁发者字段具有使用 TeletexString、BMPString 或 UniversalString 编码的属性时,CA 可以继续使用 DirectoryString 的这些编码以保持向后兼容性。 还有,新添加到现有 CA 颁发证书的域中的 CA,其颁发者字段的属性使用 TeletexString、BMPString 或 UniversalString 编码,可以使用与现有 CA 使用相同的编码对它们与现有 CA 共享的属性进行编码。 如上所述,专有名称由属性组成。 本规范不限制名称中可能出现的属性类型集。 然而,符合规范的实现必须准备好接收带有包含下面定义的属性类型集的颁发者名称的证书。 本规范建议支持额外的属性类型。
标准属性集已在 X.500 系列规范 [X.520] 中定义。 本规范的实现必须准备好在发行者和主题(第 4.1.2.6 节)名称中接收以下标准属性类型:
* country,
* organization,
* organizational unit,
* distinguished name qualifier,
* state or province name,
* common name (e.g., "Susan Housley"), and
* serial number.
此外,本规范的实现应该准备好在发行者和主题名称中接收以下标准属性类型:
* locality,
* title,
* surname,
* given name,
* initials,
* pseudonym, and
* generation qualifier (e.g., "Jr.", "3rd", or "IV").
这些属性类型的语法和相关对象标识符 (OID) 在附录 A 的 ASN.1 模块中提供。此外,本规范的实现必须准备好接收 domainComponent 属性,如 [RFC4519] 中所定义。 域名系统 (DNS) 提供分层资源标签系统。 此属性为希望使用与其 DNS 名称平行的 DN 的组织提供了一种方便的机制。 这不是替代名称扩展的 dNSName 组件的替代品。 不需要实现将此类名称转换为 DNS 名称。 该属性类型的句法和相关的 OID 在附录 A 的 ASN.1 模块中提供。用于 domainComponent 属性类型的编码国际化域名的规则在第 7.3 节中指定。
证书用户必须准备好处理颁发者可分辨名称和主题可分辨名称(第 4.1.2.6 节)字段,以执行证书路径验证的名称链接(第 6 节)。 名称链接是通过将一个证书中的颁发者专有名称与 CA 证书中的使用者名称进行匹配来执行的。 比较专有名称的规则在第 7.1 节中指定。 如果证书中颁发者和主题字段中的名称根据第 7.1 节中指定的规则匹配,则该证书是自行颁发的。
(如何判断该证书是否是自签证书, issuer和subject一致)
Subject
主题字段标识与存储在主题公钥字段中的公钥相关联的实体。 主题名称可以在主题字段和/或 subjectAltName 扩展中携带。 如果主题是一个 CA(例如,存在基本约束扩展,如第 4.2.1.9 节所述,并且 cA 的值为 TRUE),则主题字段必须填充一个与内容匹配的非空识别名 主题 CA 颁发的所有证书中的颁发者字段(第 4.1.2.4 节)。 如果主题是 CRL 发布者(例如,密钥使用扩展,如第 4.2.1.3 节所述,存在并且 cRLSign 的值为 TRUE),则主题字段必须填充一个与 主题 CRL 发布者发布的所有 CRL 中发布者字段(第 5.1.2.3 节)的内容。 如果主题命名信息仅出现在 subjectAltName 扩展中(例如,仅绑定到电子邮件地址或 URI 的密钥),则主题名称必须是空序列并且 subjectAltName 扩展必须是关键的。
以EUM为例:
如果非空,则主题字段必须包含 X.500 可分辨名称 (DN)。 对于由发行者字段定义的一个 CA 认证的每个主题实体,DN 必须是唯一的。 CA 可以向同一主题实体颁发多个具有相同 DN 的证书。
主题字段定义为 X.501 类型名称。 该字段的实现要求是为发行人字段定义的要求(第 4.1.2.4 节)。 本规范的实现必须准备好接收包含发行者字段所需属性类型的主题名称。 本规范的实现应该准备好接收包含发行者字段推荐属性类型的主题名称。 这些属性类型的语法和相关对象标识符(OID)在附录 A 的 ASN.1 模块中提供。本规范的实现可以使用第 7.1 节中的比较规则来处理不熟悉的属性类型(即名称链接) 属性值使用 DirectoryString 中的编码选项之一。 当不熟悉的属性类型包括带有不同于 DirectoryString 中的编码选项的属性值时,应使用二进制比较。 这允许实现处理主题名称中具有不熟悉属性的证书。
当对 DirectoryString 类型的属性值进行编码时,符合规范的 CA 必须使用 PrintableString 或 UTF8String 编码,但以下情况除外:
(a) 当证书的主题是 CA 时,主题字段的编码方式必须与主题 CA 颁发的所有证书中颁发者字段(第 4.1.2.4 节)中的编码方式相同。 因此,如果主题 CA 使用 TeletexString、BMPString 或 UniversalString 编码在其颁发的证书的颁发者字段中对属性进行编码,则颁发给该 CA 的证书的主题字段必须使用相同的编码。
(b) 当证书的主题是 CRL 发布者时,主题字段的编码方式必须与其在主题 CRL 发布者发布的所有 CRL 中的发布者字段(第 5.1.2.3 节)中的编码方式相同。
(c) 包含 TeletexString、BMPString 和 UniversalString 是为了向后兼容,并且不应该用于新主题的证书。 但是,这些类型可以用于名称先前已建立的证书中,包括向现有主体颁发新证书或向新主体颁发证书的情况,其中被编码的属性先前已在 发给其他科目的证书。 证书用户应该准备好接收这些类型的证书。
存在遗留实现,其中电子邮件地址作为 emailAddress 属性 [RFC2985] 嵌入到主题专有名称中。 emailAddress 的属性值是 IA5String 类型,以允许包含字符“@”,它不是 PrintableString 字符集的一部分。 emailAddress 属性值不区分大小写(例如,“subscriber@example.com”与“SUBSCRIBER@EXAMPLE.COM”相同)。 生成带有电子邮件地址的新证书的一致性实现必须在主题可选名称扩展(第 4.2.1.6 节)中使用 rfc822Name 来描述此类身份。 在主题专有名称中同时包含 emailAddress 属性以支持遗留实现已被弃用,但允许。