【发布时间】:2014-11-27 18:34:32
【问题描述】:
我正在尝试创建一个t.w.c.BrowserLikePolicyForHTTPS 以用作t.w.c.Agent 的ContextFactory。我正在为我希望代理与之通信的所有服务器使用内部 CA,因此我希望能够告诉加载 CA 证书(PEM 格式)并将其用作BrowserLikePolicyForHTTPS 的 trustRoot 参数。我已经阅读了文档并查看了源代码,但我不知道我应该提供什么作为参数。我尝试提供 PyOPenSSL x509 对象,但出现错误:
exceptions.TypeError: ('Could not adapt', <OpenSSL.crypto.X509 object at 0x280b290>, <InterfaceClass twisted.internet._sslverify.IOpenSSLTrustRoot>)
我可以在t.i._sslverify 的代码中看到OpenSSLCertificateAuthorities 以某种方式适应了IOpenSSLTrustRoot,但我并不清楚这是如何发生的。
我知道股票代理不做任何证书检查。我正在使用 Treq 的一个分支,并正在尝试添加一个选项来提供自定义代理。
如有任何关于 trustRoot 参数的帮助,我们将不胜感激。如果我要解决这个问题,也请告诉我。
【问题讨论】: