Добавление расширения в CSR для генерации промежуточного сертификата

Я создаю запрос на подпись сертификата для промежуточного сертификата. Я хочу сделать сертификат центром сертификации (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. Я в недоумении здесь. Может ли кто-нибудь указать на проблему.


person shery6405    schedule 03.01.2018    source источник


Ответы (1)


Ваш эмитент может переопределить такие ограничения, как CA: False, даже если вы запросили CA: True. Вам нужно связаться с ними, если вы не подписываете свои сертификаты самостоятельно.

openssl x509 -in your-signed-cert.pem -text -noout

Пожалуйста, проверьте, содержит ли вывод «CA:True».

person user1859658    schedule 18.09.2018