3

我正在使用 OpenSSL 生成证书签名请求 (CSR)。

标准字段是:

通用名称:John Doe
组织:MyCompany Inc.
组织单位:销售
地点:SF
州:CA
国家:美国
电子邮件:john.doe@mycompany.com

但是我想将自己的字段添加到证书中,例如:
GroupId:348348923
EmployeeLevel:Class 3

在我请求证书颁发机构 (CA) 签署 CSR 之前,执行此操作的正确方法是什么?

4

1 回答 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 中进行选择。

于 2013-01-31T01:55:37.583 回答