【问题标题】:Certificate subject X.509证书主题 X.509
【发布时间】:2011-09-21 18:57:46
【问题描述】:

根据 X.509,证书具有属性主题。

C=US,ST=马里兰,L=帕萨迪纳,O=Brent Baccala,OU=FreeSoft, CN=www.freesoft.org/emailAddress=baccala@freesoft.org

这是典型的主题值。问题是这些属性(C、ST、L、O、OU、CN)的类型(或标签)是什么,它们的格式是什么?

【问题讨论】:

  • 这些属性在X.520 : Information technology - Open Systems Interconnection - The Directory: Selected attribute types 中指定。当出现在 SubjectIssuer 中时,它们被称为 Relative Distinguished Names (RDN),它们形成 Distinguished Name i> (DN)。 DN 只是 RDN 的混搭。
  • 短名称(如 CN、O、OU...)在哪里定义(如果有的话)? Windows 也使用它们(和 opensssl),因此必须至少有一些非正式的标准。
  • @DavidBalažic 查看 RFC4519 §2 “属性类型”。它引用了 X.520,它应该是该数据的真正权威来源,只是该规范不是公开/免费提供的,而 IETF RFC 在这两种意义上都是免费提供的。
  • @PatrickMevzek 我想你可能打错了? RFC4519 与 LDAP 有关。
  • @NateT 出于我评论中解释的原因。 X.520 是权威的,但不是免费提供的。 RFC 4519 确实适用于重用大量“X”内容的 LDAP,因此您可以在那里找到定义。或者查看一个给出的答案,引用 RFC 5280。或者另一个答案再次引用 RFC 4519。

标签: certificate x509 asn.1 dn


【解决方案1】:

IETF PKIX(最新版本 RFC 5280)是公认的证书配置文件。从第 4.1.2.4 节开始,必须支持以下字段(我在括号之间添加的是 OpenSSL 长名称和可选短名称):

  • 国家(国家名,C),
  • 组织(组织名称,O),
  • 组织单位(organizationalUnitName,OU),
  • 可分辨名称限定符 (dnQualifier),
  • 州或省名称(stateOrProvinceName,ST),
  • 通用名(commonName,CN)和
  • 序列号(serialNumber)。

还有一个应该支持的元素列表:

  • 地点(地点,L),
  • 标题(标题),
  • 姓(surName,SN),
  • 名字(givenName,GN),
  • 姓名首字母(姓名首字母),
  • 化名(化名)和
  • 代限定符(generationQualifier)。

值应以 UTF8String 或 PrintableString 编码(其中一些仅在 PrintableString 中,而在 IA5String 中有些例外)。该标准还为所有字段类型设置了最大长度(附录 A.1)

出于兼容性的原因,实现还必须支持以 IA5String 编码的域组件(domainComponent、DC)。请注意电子邮件 (emailAddress) 及其编码(IA5String,但它在 DN 中被认为已弃用(它应该在主题备用名称扩展中)。

【讨论】:

  • UTF8String 为 0x0C,PrintableString 为 0x13,IA5String 为 0x16。
  • 哪些属性是 UTF8Strings,哪些是 PrintableStrings(我的意思是 C、O、OU...)。他们有自己的oid吗?
  • @Sergey 您是否尝试阅读规范?您已获得 RFC 的链接。
  • 是的,那里没有关于 oids 的消息,但我在这里找到了它technet.microsoft.com/en-us/library/cc772812(WS.10).aspx
  • 附录A中有OID。至少有一些关于它们的计算说明。但是 RFC 5280 很难阅读。
【解决方案2】:

对于那些想要这些属性的确切格式的人,RFC5280 中没有给出:

大写标签在RFC4519 中详细说明,即LDAP schema。本文档还链接到描述每个特定属性和数据类型的精确语法和语义的其他 RFC。

例如,国家/地区代码“C”跟在RFC4517ISO3166 之后,它们给出了实际的两个字母代码。并且域组件“DC”是一个符合RFC1034的dns名称。

【讨论】:

    【解决方案3】:

    除了参考 RFC 5280 的出色答案外,还请咨询RFC 8399 Internationalization Updates to RFC 5280。 RFC 8399 指定如何处理国际化的域名和电子邮件地址,符合更新的 IDNA 2008。RFC 5280 与过时的 IDNA 2003 保持一致,并不清楚如何处理本地部分不限于 ASCII 的电子邮件地址.

    【讨论】:

      猜你喜欢
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      相关资源
      最近更新 更多