我正在创建一个用于X509
在 C 中修改证书的 api,并且我想添加一种修改扩展的方法。例如,添加另一个 DNS 条目subjectNameAlt
,使其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);
但是在运行之后,根本找不到扩展名(即使我尝试添加另一个新的)。