如何使用openssl向证书添加自定义字段

如何使用openssl向证书添加自定义字段,ssl,openssl,x509,Ssl,Openssl,X509,我正在尝试创建内部使用的证书。我是CA,我希望在我的客户端证书中有一个额外的字段,这样当我为客户端生成证书时,它将在该字段中保存一些特定的数据 我阅读了以下内容,并且了解到我可以使用x509 v3格式为每个字段生成一个oid,然后在创建公钥时将其与-extfile参数一起使用 因此,我获取了deafult/etc/ssl/openssl.cnf配置文件,并取消了对其中一个字段的注释: [ new_oids ] testoid1 = 1.2.3.4 然后,我通过以下方式生成所有证书: opens

我正在尝试创建内部使用的证书。我是CA,我希望在我的客户端证书中有一个额外的字段,这样当我为客户端生成证书时,它将在该字段中保存一些特定的数据

我阅读了以下内容,并且了解到我可以使用x509 v3格式为每个字段生成一个oid,然后在创建公钥时将其与
-extfile
参数一起使用 因此,我获取了deafult/etc/ssl/openssl.cnf配置文件,并取消了对其中一个字段的注释:

[ new_oids ]
testoid1 = 1.2.3.4
然后,我通过以下方式生成所有证书:

openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem -config openssl.cnf 
openssl genrsa -out key.pem 4096
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem  -CAcreateserial -out cert.pem -extfile extfile.cnf
其中extfile.cnf内容为:

1.2.3.4 = Something
我得到:

Error Loading extension section default
140218200073872:error:22097082:X509 V3 routines:DO_EXT_NCONF:unknown extension name:v3_conf.c:125:
140218200073872:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:v3_conf.c:95:name=1.2.3.4, value=Something
unable to write 'random state'

本主题中缺少文档。有人能带我浏览一下并解释一下如何操作吗?

要添加自定义字段,首先创建一个配置文件:

[req]
req_extensions = v3_req

[v3_req]
1.2.3.4.5.6.7.8=ASN1:UTF8String:Something
然后,创建CSR:

openssl req [params] -out mycsr.csr -config myconfig.cnf
然后,创建证书:

openssl x509 -req -sha256 -in mycsr.csr [params] -out mycert.pem -extfile myconfig.cnf -extensions v3_req

我也有同样的问题,我尝试了这里的建议,但是我得到了一个错误:在配置中找不到“distributed_name”。我的配置文件必须只包含上面写的内容还是其他内容?@Sandra迟做总比不做好:(基本上,在你已经存在的
/etc/ssl/openssl.cnf
中找到上面的两个部分,如果缺少,添加这两行)