openssl 출력에서 ​​return : 1의 의미는 무엇입니까?


10

openssl 출력을 이해하지 못합니다. 다음과 같이 openssl을 실행하십시오.

#openssl s_client -connect google.com:443 -CAfile cacert.pem < /dev/null

궁극적으로 모든 것은 최종 엔터티의 인증서가 확인되었다는 것입니다. Verify return code: 0 (ok)

그러나 return:1아래 중간체에 대한 출력의 시작 부분 에서 확인 은 무엇입니까? 그게 무슨 뜻입니까?

깊이 = 3 C = US, O = Equifax, OU = Equifax 보안 인증 기관 반환 확인 :
깊이 = 2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA 반환 확인 :
깊이 = 1 C = 미국, O = Google Inc, CN = Google 인터넷 기관 G2 반품 확인 : 1
깊이 = 0 C = 미국, ST = 캘리포니아, L = 마운틴 뷰, O = Google Inc, CN = google.com 반품 확인 : 1

---
인증서 체인
 0 s : / C = US / ST = 캘리포니아 / L = 산 전망 / O = Google Inc / CN = google.com
   i : / C = US / O = Google Inc / CN = Google 인터넷 기관 G2
 1 초 : / C = US / O = Google Inc / CN = Google 인터넷 기관 G2
   i : / C = US / O = GeoTrust Inc./CN=GeoTrust 글로벌 CA
 2 초 : / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
   i : / C = US / O = Equifax / OU = Equifax 보안 인증 기관
---


답변:


13

콜백 확인 기능 (특정 용도의 인증서 적용 가능성에 대한 최종 확인을 수행하는 데 사용됨) preverify_okay에는 인증서 체인이 모든 경우에 적용되는 기본 검사를 통과했는지 여부를 나타내는 필드 라는 SSL을 통해 필드가 전달됩니다. A 1는 이러한 검사가 통과되었음을 의미합니다.

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

verify_callback 함수는 SSL_VERIFY_PEER 플래그가 설정 될 때 동작을 제어하는 ​​데 사용됩니다. 응용 프로그램에서 제공해야하며 두 개의 인수를받습니다. preverify_ok는 해당 인증서의 검증이 통과되었는지 (preverify_ok = 1) 아닌지 (preverify_ok = 0)를 나타냅니다.

이것이 verify return:1보여주는 것입니다.

자세한 내용을 원하면 코드를 확인할 수 있습니다.

int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
    {
    [ snip ]
    BIO_printf(bio_err,"verify return:%d\n",ok);
    return(ok);
    }

전체 문서도 여기에 있습니다 : openssl.org/docs/manmaster/ssl/SSL_CTX_set_verify.html
jouell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.