gpt4 book ai didi

security - OpenSSL API : CRL checking doesnt work me

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:04 25 4
gpt4 key购买 nike

我正在尝试将 CRL 管理添加到我的 X509_store。我这样做了:

int x509_add_crl_to_store( X509_STORE * store, const char * crl_file ){
STACK_OF(X509_CRL) *crls = 0;
X509_CRL *x;

CHK(!store, SSL_FAIL);

if (X509_STORE_set_default_paths(store) != 1){
MITM_PRINT_ERR("Error loading the system-wide CA certificates");
return SSL_FAIL;
}

if(load_crls_from_PEM(crl_file, &crls) != 1)
{
MITM_PRINT_ERR("load_crls_from_PEM failed.");
return SSL_FAIL;
}

while((x=sk_X509_CRL_pop(crls)) != 0){
if(X509_STORE_add_crl(store,x) != 1){
MITM_PRINT_ERR("Failed to add CRL to store.");
return SSL_FAIL;
}
else{
MITM_PRINT_ERR("Succedded to add CRL to store.");
}
}

/* set the flags of the store so that CRLs are consulted */
//X509_STORE_set_flags(store, X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL| X509_V_FLAG_TRUSTED_FIRST);

return SSL_OK; }

问题是:

  • 如果我启用最后几行:

    X509_STORE_set_flags(商店,X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL);

因此 CRL 检查正常,但不再检查受信任的商店。

当然,如果我禁用这些行,受信任的 CA 检查会起作用,但 CRL 不起作用。

有什么想法吗???

谢谢迈克尔

最佳答案

在结合 X509_V_FLAG_CRL_CHECK 启用 CRL 标志 X509_V_FLAG_CRL_CHECK_ALL 时应该非常小心,因为两者的综合效果是要求存在与信任链中所有 CA 相对应的每个 CRL。因此,如果您将 CA 证书 Verisign.pem 添加到您的信任库,并且它是信任链​​的一部分,您必须添加 CRL Verisign_CRL.pem

在您的特定情况下,您已使用 X509_STORE_set_default_paths(store) 添加了 /etc/ssl/certs 目录中的所有证书。为了使验证正常工作,您需要添加一个 CRL,该 CRL 对应于该目录中您希望成为链的一部分的每个 CA。

更好的方法是将您的 CA 列表缩小到您拥有 CRL 的 CA,并使用 X509_STORE_add_cert(store, ca_cert) 单独添加它们。

关于security - OpenSSL API : CRL checking doesnt work me,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37101418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com