我希望 imaplib 显示 IMAP 服务器证书的 md5(或 SHA)密钥,以确保没有 MITM(我不信任 CA,因此在这种情况下验证链是不够的)。
显示整个证书也可以。
我将不胜感激任何帮助!
- 克里斯
我希望 imaplib 显示 IMAP 服务器证书的 md5(或 SHA)密钥,以确保没有 MITM(我不信任 CA,因此在这种情况下验证链是不够的)。
显示整个证书也可以。
我将不胜感激任何帮助!
您可以使用M2Crypto 包从 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
来获取更多信息。
我不知道如何从 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()
请注意,这cert
是一个X509 对象。