m2crypto의 set_client_ca_list_from_file ()와 load_verify_info ()의 차이점은 무엇이며 언제 각각을 사용 하시겠습니까?
문제
그만큼 M2Crypto 라이브러리 그것에 몇 가지 CA 관련 기능이 있습니다 ssl.context 객체, 그러나 문서는 특정 기능을 언제 사용할 것인지와 그 이유에 대해 매우 불분명합니다. 실제로, 거의 모든 사람들의 문서는 "컨텍스트에 적재 된"이므로 모두 똑같은 일을 할 가능성이 있습니다.
거기 있습니다 몇몇의 예 둘 다 사용합니다 set_client_CA_list_from_file()
그리고 load_verify_info()
, 그러나 다른 유사한 기능도 있습니다 load_client_ca()
그리고 load_verify_locations()
.
클라이언트와 서버 조각을 모두 작성하고 있습니다. 어떤 기능을 사용해야하며 그 이유는 무엇입니까? 구체적으로 그들은 무엇을합니까?
편집하다:
내가 보는 코드를 살펴보십시오.
# Deprecated.
load_client_CA = load_client_ca = set_client_CA_list_from_file
그리고
# Deprecated.
load_verify_info = load_verify_locations
그래서 그것은 조금 도움이됩니다. 이것은 우리를 두 가지 기능으로 이끌어줍니다. set_client_CA_list_from_file()
그리고 load_verify_locations()
. 그러나 나는 여전히 둘 사이의 차이를 말할 수 없습니다.
해결책
서버가 클라이언트가 인증서를 제시하도록 요구하는 경우 발행자 전화를 지정하여 고객 인증서의 유효한 발행자 인 사람을 제한 할 수 있습니다. set_client_ca_list_from_file. 이것은 실제로 꽤 드 rare니다.
클라이언트는 load_verify_locations. 거의 모든 고객이이를 수행해야합니다.
클라이언트와 서버 모두 호출 할 수 있습니다 load_cert 자체 인증서를 설정합니다. 서버는 거의 항상이 작업을 수행해야합니다. 클라이언트는 서버가 클라이언트가 인증서를 제시하도록 요구하는 경우에만이 작업을 수행해야 할 것입니다.
사본을 선택하는 것이 좋습니다 OpenSSL을 통한 네트워크 보안 John Viega, Matt Messier 및 Pravir Chandra, ISBN 059600270X, 이러한 문제를보다 자세히 설명해야합니다.