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

fun*_*a68 3 openssl digital-signature

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

标准字段是:

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

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

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

Pau*_*rer 6

您描述的所有字段都是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中进行选择.