2011-04-19 4 views
3

imaplib에 IMAP 서버 인증서의 md5 (또는 SHA) 키를 표시하여 MITM이 없음을 확인합니다 (CA를 신뢰하지 않아 체인 확인이 충분하지 않음). 이 경우).Python imaplib 인증서 키 표시

전체 인증서를 표시하는 것도 괜찮습니다.

도움을 주시면 감사하겠습니다.

  • 크리스

답변

0

난은 imaplib에서 작업을 수행하는 방법을 모른다, 그러나 당신은 보안 IMAP 서버에 연결 M2Crypto를 사용하여 인증서를 표시 할 수 있습니다

from M2Crypto import SSL                    
ctx = SSL.Context('sslv3')                   
c = SSL.Connection(ctx)                    
c.connect(('localhost', 993)) # automatically checks cert matches host        
cert = c.get_peer_cert()                    

print cert.as_pem()                     
print cert.as_text() 

주를이 certX509 object입니다.

+0

감사합니다. 그는 동일한 연결에서 직접 cert를 가져 오기 때문에 samplebias 솔루션을 사용할 것입니다. 그럼에도 불구하고 다시 한 번 감사드립니다. – chris

+0

@chris - 걱정 마세요, 행운을 비네! –

2

M2Crypto package을 사용하여 IMAP 연결의 SSL 소켓에서 전체 SSL 인증서를 구문 분석 할 수 있습니다.

import imaplib 
from M2Crypto import X509 

cn = imaplib.IMAP4_SSL('imap.gmail.com', 993) 
sock = cn.ssl() 
data = sock.getpeercert(1) 
cert = X509.load_cert_string(data, X509.FORMAT_DER) 
print cert.get_fingerprint() 

인쇄 : 예를 들면 다음과 같습니다이다

2029AF27C0A55390D670C0BD7AB9747 

추가 정보를 얻을 수 cert에 다른 속성을 사용합니다.

+0

이것은 정확히 내가 찾고있는 것입니다. 고마워요! – chris

+0

차가움. 다행이다. – samplebias

관련 문제