如何在证书签名请求(CSR)中添加附加信息?

3
我正在使用OpenSSL生成证书签名请求(CSR)。
标准字段如下: - 通用名称:John Doe - 组织:MyCompany Inc. - 组织单位:Sales - 地点:SF - 州/省:CA - 国家:US - 电子邮件:john.doe@mycompany.com
但是,我想在证书中添加自己的字段,例如: - GroupId: 348348923 - EmployeeLevel: Class 3
在请求证书颁发机构(CA)签署CSR之前,正确的方法是什么?
1个回答

7
您描述的所有字段都是X509 CSR中的主题项。它们实际上是OID(通常按其给定的简称显示)。您可以在此处找到它们的列表:这里。要实现您想要的功能,需要做几件事情。首先,您必须定义一个要映射到您的简称的OID。有多种方法可以实现此目的,但如果您希望确保唯一性,技术上应该从IANA(请求)获得企业编号(私人分配列表)。
如果您实际上不需要这样的东西,当然可以欺骗并在1.3.6.1.4.1.X下生成自己捏造的#号,但我建议使用非常大的数字。
完成后,您可以在conf或其他工具中定义OpenSSL OID映射。当然,如果您在任何不知道您自己映射的任何东西中查看结果证书,则不会看到“GroupId”,而将看到更像“1.3.6.1.4.1.3838483483.1 = Class 3”的内容。
应该注意的是,如果您将此CSR发送给任何公共可信CA(而不是您自己的私有CA),则非常,非常有可能它们将删除任何未知字段。
当然,您可能并不一定想要执行任何此操作。如果您需要将这些值编码到证书中,我建议直接引用您捏造的OID或从已经具有短名称映射的各种很少使用的预定义主题OID中进行选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接