如何使用 openssl 将自定义字段添加到证书
How to add custom field to certificate using openssl
我正在尝试创建供内部使用的证书。我是 CA,我希望在我的客户端证书中有一个额外的字段,这样当我为客户端生成证书时,它将在该字段中包含一些特定数据。
我阅读了以下 article and another article 并且我知道我可以通过为每个字段生成一个 oid 来使用 x509 v3 格式来做到这一点,然后在创建 -extfile
参数时将其与 -extfile
参数一起使用=30=]键
所以我采用了默认的 /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
我正在尝试创建供内部使用的证书。我是 CA,我希望在我的客户端证书中有一个额外的字段,这样当我为客户端生成证书时,它将在该字段中包含一些特定数据。
我阅读了以下 article and another article 并且我知道我可以通过为每个字段生成一个 oid 来使用 x509 v3 格式来做到这一点,然后在创建 -extfile
参数时将其与 -extfile
参数一起使用=30=]键
所以我采用了默认的 /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