如何向证书服务请求(CSR)添加其他信息?

时间:2013-01-31 00:50:53

标签: openssl digital-signature

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

标准字段为:

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

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

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

1 个答案:

答案 0 :(得分:6)

您描述的所有字段都是X509 CSR中的主题项。它们实际上是OID(通常以其给定的短名称显示)。您可以找到它们的列表here。做你想做的事需要一些东西。首先,您必须定义要映射到短名称的OID。有几种方法可以做到这一点,但如果您想在技术上保证唯一性,那么您应该requesting来自IANA的企业号码(list of private assignments)。

如果你真的不需要那种东西,你可以欺骗并在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中进行选择。