繁体   English   中英

Python imaplib显示证书密钥

[英]Python imaplib display certificate key

我希望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中执行此操作,但您可以使用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()   

请注意, certX509对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM