我正在创建一个api来修改C中的X509
证书,我想添加一种修改扩展的方法。例如,向subjectNameAlt
添加另一个DNS条目,使其为DNS:example.com,DNS:example2.com
而不是DNS:example.com
。删除和重新添加的原因是因为我必须重新解析扩展(这很困难),我宁愿只添加一条信息。我如何通过OpenSSL API执行此操作?
我试图简单地重复使用添加代码:
ex = X509V3_EXT_conf_nid(NULL, &ctx, NID_subject_alt_name, "DNS:new.dns.example");
if (!ex)
return;
X509_add_ext(cert,ex,-1);
X509_EXTENSION_free(ex);
但是在运行之后,根本找不到扩展名(即使我尝试添加另一个新扩展名)。
答案 0 :(得分:0)
看看
demos/x509/mkcert.c
demos/x509/selfsign.c
demos/x509/mkreq.c
在你的openssl发行版中。我怀疑你没有设置你的背景;或者你假设一个i2d / etc在场景后面被调用,当你说'根本找不到'时。请注意,X509_sign()及其同类会创建大量此类内容。如果你没有打电话 - 那就不要指望创造任何一个。