我希望imaplib显示IMAP服务器证书的md5(或SHA)密钥以确保没有MITM(我不相信CA,因此验证链不够用在这种情况下)。Python imaplib显示证书密钥
显示整个证书也没关系。
我会很感激任何帮助!
- 克里斯
我希望imaplib显示IMAP服务器证书的md5(或SHA)密钥以确保没有MITM(我不相信CA,因此验证链不够用在这种情况下)。Python imaplib显示证书密钥
显示整个证书也没关系。
我会很感激任何帮助!
我不知道如何从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 object。
您可以使用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
其他属性以获得进一步的信息。
这正是我所期待的。非常感谢你! – chris 2011-04-20 22:12:06
很酷。很高兴这很有帮助! – samplebias 2011-04-20 22:23:02
谢谢。我将使用samplebias解决方案,因为他直接从相同的连接获取证书。但是再次感谢。 – chris 2011-04-20 22:13:17
@chris - 不用担心,祝你好运! – 2011-04-21 00:15:22