我正在嘗試創建一個t.w.c.BrowserLikePolicyForHTTPS
作爲ContextFactory
用於t.w.c.Agent
。我爲所有希望Agent與之通信的服務器使用內部CA,所以我希望能夠告訴加載CA證書(PEM格式)並將其用作BrowserLikePolicyForHTTPS
的trustRoot參數。我已閱讀文檔並查看源代碼,但我不知道我應該提供什麼作爲參數。我試圖提供PyOPenSSL X509對象,但我得到一個錯誤:扭曲的Python如何使用自定義的trustRoot創建twisted.web.client.BrowserLikePolicyForHTTPS?
exceptions.TypeError: ('Could not adapt', <OpenSSL.crypto.X509 object at 0x280b290>, <InterfaceClass twisted.internet._sslverify.IOpenSSLTrustRoot>)
我可以在代碼中看到的那個t.i._sslverify
莫名其妙OpenSSLCertificateAuthorities
得到適應IOpenSSLTrustRoot
,但它是不是真的我清楚這是如何發生。
我知道股票代理沒有做任何證書檢查。我正在使用treq的一個分支,並嘗試添加一個選項來提供自定義代理。
任何有關trustRoot參數的幫助將不勝感激。如果我正在努力解決這個問題,請讓我知道。
如果您有多個可選的可接受信任根,則執行此操作會稍微複雜一些,並且我還提交了一張Twisted故障單以解決此問題:https://twistedmatrix.com/trac/ticket/7671。 – Glyph 2014-10-06 23:15:11
請問#7671是否也解決了將您自己的信任根與系統信任根結合在一起的問題?有些情況下我想使用OS CA捆綁軟件和我自己的CA證書。我不確定在票證中提出的解決方案是否可以解決此問題,除非您可以將路徑指定到存儲操作系統軟件包的任何位置。 – Carl 2014-10-07 17:33:49
我想應該。請評論進一步討論,但:)。 (另外,如果你不介意將這個答案改爲「接受」 - 我寧願讓人們接受這個建議,而不是讓 - 保羅在這種情況下。) – Glyph 2014-10-08 05:00:26