Python/Twisted程序在Windows下验证SSL证书的正确方法是什么?

Pau*_*ley 7 python windows ssl twisted

是否有一个Python /双绞线程序干净利落利用根证书列表的一种方式,Internet Explorer使用来验证SSL连接到HTTPS服务器?提供答案验证与Python SSL证书是非常有帮助的,但示例代码通过读取Unix的特定目录/etc/ssl/certs/*.pem获取根证书,它不是很清楚,我在Windows相当于这将是什么.

Gly*_*yph 3

Windows 等效项是“从 Linux 计算机复制 /etc/ssl/certs/*.pem”。Mac 和 Windows 有不同的本机 API 来获取各自的证书存储,而 Twisted 并不直接支持。他们本身并不使用OpenSSL证书,而且他们当然不会将内容放在像“PEM 文件目录”那样简单的布局中。如果您可以将信任根导出为 PEM,那么您可以要求 Twisted(好吧,实际上是OpenSSL通过PyOpenSSL)以这种方式进行验证。

我抽象地对以超级便携的方式做到这一点感兴趣,但我从未真正尝试过。以下是一些可帮助您入门的链接:SecureTransport 参考Microsoft 加密函数

在 SecureTransport 参考中,文档指出该方法SSLGetTrustedRoots已被弃用,但没有提及SSLCopyTrustedRoots未弃用的替代方案。这可能是您想要在 Mac 上开始使用的 API(通过 PyObjC)。在 Windows 上,我真的不确定,除了在那堆函数中的某个地方,可能有一个函数可以执行您想要的操作,也许您可​​以使用 ctypes 来调用它:)。