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);
를, I는 0과 같은 ret_val
가 계속 위에서 언급 한 오류가 기록됩니다. 그러나 OCSP 응답자로부터 올바른 응답을 얻고 있으며 인증서 상태가 양호합니다. 남은 건 OCSP_basic_verify
로 전화를 걸면됩니다. 누군가 내가 잘못 가고있을 수 있음을 지적 할 수 있습니까? 감사.
발급자가 루트 CA 또는 중간 CA입니까? 후자의 경우 자체 사인/루트 CA까지 전체 체인을 제공하려고 시도 할 수 있습니다. – Castaglia
@Castaglia : 'OCSP_basic_verify'가 루트 CA를 찾을 때까지 반복적으로 문제가 발생했습니다. 그러나 내가 추가 한 인증서는 중간 인증서에 불과했기 때문에 검증에 실패했습니다. 전체 체인을 추가하고 나면 'OCSP_basic_verify'호출이 진행되기 시작했습니다. –