如何将自定义信息正确包含到 X509 证书中

How to properly include custom information into X509 certificates

我正在实现一个 Web 服务,该服务使用 X509 证书对调用者进行身份验证和授权。

将实体类型(即 "end user" 或 "device")指定为主题名称的一部分是否合适,例如 OU RDN?

使用 CN RDN 将实体的身份指定为主题名称的一部分是否合适?

授权令牌是否是 X509.v3 扩展的一部分的最佳位置(我了解授权信息,如 "have access to cookie jar",不属于主题名称部分)?

如果我要将自定义扩展值包含到证书中,正确的方法是申请一个 OID(通过 PEN),并创建指定授权信息的子 OID,然后使用这些OID 作为扩展的 OID?如果由于某种原因这是错误的,将不胜感激关于如何以标准方式完成此操作的任何指示。

在主题可分辨名称 (DN) 的通用名称 (CN) 字段中指定实体的身份是正确的。 对于用户或设备,还可以在主题 DN 中指定他们所属的组织 (O) and/or 组织单位 (OU)。还有用户 ID (UID) 组件。

有一个用于授权断言的 X.509 标准配置文件 specified in RFC 5755。一个属性证书承载一个或多个关于身份的属性,如组成员、角色、许可级别等,以及引用public密钥证书 授权信息适用的身份(即通常的 X.509 证书)。

这种标准化方法避免了设计自定义 X.509 扩展的任何需要,因此无需申请官方 OID(这也很好,因为我不知道这方面的“官方”程序。)