OpenSSL을 사용하여 클라이언트 인증서의 유효성을 검사해야합니다. 그러나 루트 인증서 (신뢰할 수있는 중간 인증서 만)가 없습니다.SSL_CTX_set_verify 콜백은 인증서를 어디에서 받습니까?
how to validate a client Certificate using the trusted internediate CA certificate? 거의 "콜백을 설정 요약은 (사용 :
나는 몇 가지 링크가 그 작업을 수행하는 방법에 주위를 둘러 보면 시작 발견SSL_CTX_set_verify
)이 콜백의 오류를 무시하십시오. " 콜백이 호출됩니다 여러 번 및 설명서 (체인의 각 인증서) 말한다 :
인증서 체인이 깊은 중첩 수준 (루트 CA 인증서)로 시작하는 확인하고 위쪽으로 일한다 피어의 인증서에. 각 레벨에서 서명 및 발급자 속성이 확인됩니다.
내 질문에 OpenSSL에서 이러한 인증서 체인을 어디에서 얻을 수 있습니까? 클라이언트에서 가져 오거나 (신뢰할 수 없다는 의미) 신뢰할 수있는 저장소에서 가져옵니다 (신뢰할 수 있음을 의미).
클라이언트 인증서가 클라이언트에서만 제공되는 경우 깊이> 0 (중간 인증서) 인 모든 오류를 거의 무시할 수 있습니다. 이 경우 클라이언트가 전체 체인을 보낼 수 있으면 오류 만 무시할 수는 없지만 추가 검증을 수행해야합니다.
P. 내 실험에 따르면 depth = 1은 중간의 신뢰할 수있는 인증서이고 depth = 0은 클라이언트에서 보내는 인증서입니다. 그러나 이것은 결론적이지 않습니다.