我一直在网上搜索几个小时,我找不到办法做到这一点.我已经能够使用以下命令创建自签名CA证书:
openssl genrsa -out ca.key 1024
openssl req -new -x509 -extensions v3_ca -key ca.key -out ca.crt -days 3650
现在我想创建新证书并与我的CA签名.在新证书中,我希望拥有自己的扩展名 – 我们可以将其称为“abc”,以使整数值为“1”.我尝试了以下命令:
openssl req -new -nodes -newkey rsa -extensions abc -keyout mycert.key -out mycsr.csr -days 365 -config ./openssl.cnf
使用openssl.cnf文件时只包括:
[ abc ]
abc = ASN1:INTEGER:1
我得到以下错误
Error Loading extension section abc
3073632456:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large:a_object.c:109:
3073632456:error:22074073:X509 V3 routines:V3_GENERIC_EXTENSION:extension name error:v3_conf.c:271:name=abc
我在SO上找到了this模糊相关的topis,但它根本没有帮助……
什么似乎是问题?我怎样才能纠正自己?任何想法都赞赏.
最佳答案 您的错误在param abc扩展名中错误:v3_conf.c:271:name = abc not section [abc].
你不能写abc = …
如果你在配置中看到类似这个policyConstraints = …
这意味着关键字policyConstraints有自己的OID(2.5.29.36见
http://www.oid-info.com/get/2.5.29.36)并且它在库中预编译.
那么你可以做什么
1.尝试找到适合您的现有OID并写入而不是abc.
2.定义您自己的OID(只需替换1.2.3.4而不是abc),但此类证书不能在其他系统中使用.