0
私は複数の証明書チェーンを持っており、それらをすべてディレクトリに置かれた複数のCRLファイルに対して検証したいと考えています。CRLで証明書チェーンを確認する方法
これは私が試したサンプルコードです。私はopensslの初心者です。このコードがすべての証明書(チェーン全体)をCRLで検証しているかどうかはわかりません。
X509_STORE* store = X509_STORE_new();
X509_STORE_set_flags(store, X509_V_FLAG_CRL_CHECK_ALL);
for each chain
{
STACK_OF(X509*) stack = sk_X509_new_null();
for(int index=0; cert_chain[index] != NULL; index++)
{
if(cert_chain[index]->type == 0)
{
//EE cert
eecert = cert_chain[index]->cert;
}
else
{
sk_X509_push(stack, cert_chain[index]->cert);
//get crl matching issuer
X509_Name* issuer = getIssuer(cert_chain[index]->cert);
X509_CRL* crl = getCRL(issuer);
//Any best way to add multiple crls at once or add location?
X509_STORE_add_crl(store, crl);
}
}
X509_STORE_CTX *store_ctx = X509_STORE_CTX_new();
X509_STORE_CTX_init(store_ctx, store, NULL, NULL);
X509_STORE_CTX_set_chain(ctx, stack);
X509_STORE_CTX_set_cert(store_ctx, eecert);
X509_verify_cert(store_ctx);
}
- これは、ストアに証明書チェーンを追加するための正しい方法は何ですか?
- 完全なチェーンと複数のCRL ファイルをロードする方法はありますか?
- 上記のコードはチェーン全体を確認しているのか、
私は専門家でもありませんが、あなたはクライアントに電話をかけたときにあなたの設定で定義された信頼できる証明書のセット[A、B]を持っていて、 CがAかBで証明されていることがわかるまで、Zを検証してください。あまりにも多くのZが安全で、チェーン全体を信頼できるセットに追加して後で使用できるようにする –