gpt4 book ai didi

python - 使用Python获取smtp服务器证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:23 24 4
gpt4 key购买 nike

连接到支持 STARTTLS 的 SMTP 服务器并获取其服务器 SSL 证书的最简单方法是什么?我知道可以使用 openssl 和类似这样的东西来完成

openssl s_client -starttls smtp -crlf -connect 192.168.0.1:25

我如何从 Python 中执行此操作并且我不想调用 openssl 并解析其输出。我查看了 M2Crypto,它是一个 openssl 包装器,但据我所知它不支持 starttls。非常感谢如何使用 Python 库执行此操作的示例。

最佳答案

这将返回二进制格式(DER 编码)的证书:

import socket, ssl
s = socket.socket()
s.connect(("host", 25))
s.send("STARTTLS\n")
s.recv(1000)
ss = ssl.wrap_socket(s)
certificate_der = ss.getpeercert(True)

这只是给你一个想法,错误处理等当然是必需的。如果您想解码证书中的信息,您要么必须为可接受的 CA 提供证书颁发机构 bundle /目录(在这种情况下 getpeercert() 将返回有意义的字典),要么使用功能更强大的 ssl 库,例如 M2Crypto。

关于python - 使用Python获取smtp服务器证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5108681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com