我希望imaplib显示IMAP服务器证书的md5(或SHA)密钥,以确保没有MITM(我不信任CA,因此在这种情况下验证链是不够的)。
显示整个证书也没关系。
我很感激任何帮助!!
答案 0 :(得分: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
上的其他属性获取更多信息。
答案 1 :(得分:0)
我不知道如何从imaplib中执行此操作,但您可以使用M2Crypto连接到安全的IMAP服务器并显示证书:
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()
请注意,cert
是X509 object。