2011-06-24 169 views
43

按照X.509,证书有一个属性主题。证书主题X.509

 
C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft, 
CN=www.freesoft.org/[email protected] 

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

+0

这些属性在[X.520规定:信息技术 - 开放系统互连 - 目录:选择的属性类型](http://www.itu.int/rec/T-REC-X.520)。当* Subject *或* Issuer *出现时,它们被称为*相对专有名称* (RDN),以及它们形成的*专有名称*(DN)的DN仅仅是一个的RDN的混搭。 – jww

+2

哪里短名称(如CN,O,OU ...)定义(如果有的话)?视窗还使用他们(和OPENSSSL),所以必须有至少有一些非正式的标准。 –

回答

67

IETF PKIX(最新版RFC 5280)是证书广泛接受的个人资料。从部分4.1.2.4,以下字段必须支持(我括号之间添加是OpenSSL长,可选的短名称):

  • 国家(国家名称,C),
  • 组织(单位名称,O- ),
  • 组织单元(organizationalUnitName,OU),
  • 专有名称限定符(dnQualifier),
  • 州名或省名(stateOrProvinceName,ST),
  • 通用名(COMMONNAME,CN)和
  • 序列号(serialNumber)。

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

  • 地方(地方,L),
  • 标题(title),
  • 姓(姓,SN),
  • 给定名称(给定名称,GN),
  • 首字母(缩写),
  • 笔名(化名)和
  • 代修饰符(generationQualifier)。

值应该用UTF8String或PrintableString编码(其中一些仅在PrintableString中,并且在IA5String中有一些例外)。该标准还具有用于所有字段类型(附录A.1)

出于兼容性原因,实现还必须支持在IA5String编码域分量(domainComponent,DC)的最大长度。提请注意电邮(EMAILADDRESS)和它的编码(IA5String,但它被认为是过时的DNS(应该是在主题备用名称扩展名)

+0

什么,可打印和UTF8字符串的代码? – Sergey

+1

UTF8字符串为0x0C,10,可打印是0×13和IA5String是0x16。 –

+0

哪些属性是UTF8Strings,哪些是PrintableStrings(我的意思是C,O,OU ...)。他们有他们的oids吗? – Sergey