私はX509_store、CRLsの管理に追加しようとしています。 私がやったこと:問題があるOpenSSL API:CRLチェックが機能しません
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は機能しません。
おかげ ミカエル
"信頼できるストアがもうチェックされていない"と言えば、信頼できないCAが最初にチェックされるか、証明書チェーンプロセスが完全に失敗するということですか? – Rahul
私は、ルート証明書が信頼されていると認識されなくなったことを意味します(ストアにも表示されます)。検証が失敗したかどうか、または信頼できるストアがまったくチェックされていないかどうかはわかりません....なぜなら、それはopenSSLによって内部的に行われるからです。ありがとう –