Openssl 在CSR中添加证书策略扩展
我正在尝试使用openssl(版本1.0.1.e)在CSR中添加一个“证书策略”扩展Openssl 在CSR中添加证书策略扩展,openssl,x509certificate,csr,ca,certificate-authority,Openssl,X509certificate,Csr,Ca,Certificate Authority,我正在尝试使用openssl(版本1.0.1.e)在CSR中添加一个“证书策略”扩展 是允许证书请求者处理证书策略,还是只有CA可以处理 基于文件openssl/demos/x509/openssl/demos/x509/mkreq.c中的函数mkreq(),我添加了以下行: add_ext(exts, NID_certificate_policies, "1.3.6.1"); 不幸的是,它导致了分段错误。 语法正确吗?有什么不对劲的线索吗 是,允许证书请求者插入证书
openssl/demos/x509/openssl/demos/x509/mkreq.c
中的函数mkreq()
,我添加了以下行:
add_ext(exts, NID_certificate_policies, "1.3.6.1");
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
为了支持证书策略扩展,“CertificatePolicys”设置。已解决的添加扩展包含对函数的调用
X509V3_EXT_conf_nid(NULL, NULL, nid, (char *)value);
如果使用上下文重写此函数,则上下文参数为NULL,并且segfault将被修复。
f、 范例
int add_ext_by_name(STACK_OF(X509_EXTENSION) *sk, const char *name, const char *value)
{
X509_EXTENSION *ex;
X509V3_CTX ctx;
X509V3_set_ctx_test(&ctx);
ex = X509V3_EXT_nconf(NULL, &ctx, name, value);
if (!ex) {
printf("%s: %s\n", tr("no ext"), name);
return 0;
}
sk_X509_EXTENSION_push(sk, ex);
return 1;
}
召唤
add_ext_by_name(exts, "certificatePolicies", "1.2.643.100.113.1, 1.2.643.100.113.2");
我们会成功的。
具有NID参数的函数,您可以自己编写:)