【发布时间】:2018-06-13 07:47:29
【问题描述】:
我正在为中间证书生成证书签名请求。我想让证书成为证书颁发机构 (CA),所以我想在 CSR 中添加基本约束扩展。我目前正在使用以下代码
exts = sk_X509_EXTENSION_new_null();
add_ext(exts, x509_req, NID_basic_constraints, "critical,CA:TRUE");
X509_REQ_add_extensions(x509_req, exts);
sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
添加扩展功能是这样的
int add_ext(STACK_OF(X509_EXTENSION) *sk, X509_REQ* req, int nid, char *value)
{
X509_EXTENSION *ex;
X509V3_CTX ctx;
X509V3_set_ctx_nodb(&ctx);
X509V3_set_ctx(&ctx, NULL, NULL, req, NULL, 0);
ex = X509V3_EXT_conf_nid(NULL, &ctx, nid, value);
if (!ex)
{
log("X509V3_EXT_conf_nid generated error", cspsdk::Logging::LOG_LEVEL_INFO);
return 0;
}
sk_X509_EXTENSION_push(sk, ex);
return 1;
}
问题是在签名后,证书的基本约束扩展的 CA 值设置为 false。我在这里不知所措。谁能指出问题。
【问题讨论】:
标签: ssl openssl x509 tls1.2 csr