私はOCSPレスポンダから自分自身のOCSP実装を作成し、OCSP基本応答を確認するためにhttps://github.com/openssl/openssl/blob/master/apps/ocsp.cを参照しています。しかし、どういうわけか、私が実行する各反復、私はエラーerror:27069065:OCSP routines:OCSP_basic_verify:certificate verify error:ocsp_vfy.c:138:Verify error:unable to get issuer certificate
を得続けます。私が検証される証明書と発行者証明書の両方のX509データを持っていると私は応答を確認するために以下のコードを使用していますのでご注意ください:上記のコードの場合opensslでOCSP_basic_verify()を正しく使用していますか?
OCSP_BASICRESP *br = OCSP_response_get1_basic(resp); // where resp is the response received.
STACK_OF(X509)* certs = sk_X509_new_null();
if (!sk_X509_push(certs, issuer)) // issuer X509 known
printf("Failed to add issuer");
X509_STORE* store = X509_STORE_new();
X509_LOOKUP *lookup;
lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file());
lookup = X509_STORE_add_lookup(store, X509_LOOKUP_hash_dir());
X509_STORE_add_cert(store,issuer);
ret_val = OCSP_basic_verify(br, certs, store, 0);
if (ret_val <= 0) {
printf("Response Verify Failure: %d", ret_val);
を、私は0としてret_val
を得続けます上記のエラーが記録されています。しかし、私はOCSPレスポンダから正しい応答を得ており、証明書ステータスは良好です。残っているものだけがOCSP_basic_verify
にコールを固定しています。誰かが私が間違っているかもしれない箇所を指摘できますか?ありがとう。
が発行者になります。後者の場合は、自己署名/ルートCAにチェーン全体を提供しようとするかもしれません。 – Castaglia
@Castaglia:問題は、 'OCSP_basic_verify'がルートCAを見つけるまでループを維持するという点でした。しかし、私が追加した証明書は中間の証明書なので、検証に失敗しました。一度チェーン全体を追加すると、 'OCSP_basic_verify'コールが処理を開始しました。 –