2010-02-23 3 views
2

M2Crypto 0.20.2 및 Python 2.4.3을 사용하고 있습니다. 정규화 된 도메인 이름으로 서버에 연결합니다.M2Crypto : 호스트 이름의 후속 연결 확인 무시

M2Crypto.SSL.Checker.WrongHost: Peer certificate commonName does not match host

이 어떻게 호스트 이름의 후 연결 검사를 대체 할 : 서버 인증서의 일반 이름 그래서 나는이 오류가 FQDN을 사용하지 않는 이유는 무엇입니까?

감사합니다.

+0

이 내가 트릭을 할해야한다고 생각 라인입니다 언급해야 하는가? 해당 줄을 사용하면 'wronghost'오류가 사라집니다. 그러나 서버에 대한 xmlrpc 호출을 만들려고 할 때 스크립트에서 오류가 발생할 수 있습니다. – Becky

답변

2

설정 SSL.Connection.clientPostConnectionCheck = None은 WrongHost 검사를 우회하지만 우회하지 않으려는 다른 검사 (예 : 인증서가 있는지 확인하는 것)를 건너 뜁니다. WrongHost를 잡으려고 try/except 콤보를 사용하는 것이 좋습니다. 왜냐하면 실제로 연결 함수가 끝나기 전에 검사되거나 수행되는 것이 없기 때문입니다. 즉

는 아무것도 (지금까지의 내가 소스에서 볼 수있는) 그냥 예외를 잡기 왼쪽 취소 할 수 없습니다, 따라서 나는

SSL.Connection.clientPostConnectionCheck = None

를 사용하는 것보다 더 좋은 경로라고 말할 다른 많은 가치있는 수표를 없애줍니다.

xmlrpc 전화를 걸 때까지 오류가 무엇인지 모른 채 말할 수는 없습니다. 나는 그것이 ProtocolError 예외라고 추측하고 있는데, 그렇다면 m2xmlrpclib.py를 편집하여 ProtocolError 예외에 나열된 errcode 예외를 발생시키지 않고 편집 할 수 있습니다. SSL.Connection.clientPostConnectionCheck이 사람이 그 아무도 확인하지 수 =

+0

조금 더 명확하게 .. "M2Crypto 가져 오기"가 있으면 M2Crypto.Sl.Connection.clientPostConnectionCheck = None을 수행해야합니다. –