Я пытаюсь создать t.w.c.BrowserLikePolicyForHTTPS
для использования в качестве ContextFactory
для t.w.c.Agent
. Я использую внутренний ЦС для всех серверов, с которыми я хочу, чтобы Агент связывался, поэтому я хотел бы сказать, чтобы загрузить загрузку сертификата CA (формат PEM) и использовать его в качестве аргумента trustRoot для BrowserLikePolicyForHTTPS
. Я прочитал документы и посмотрел на источник, но я понятия не имею, что я должен предлагать в качестве аргументов. Я попытался предоставление объекта PyOPenSSL x509, но я получаю сообщение об ошибке:Twisted Python Как создать файл twisted.web.client.BrowserLikePolicyForHTTPS с пользовательским trustRoot?
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
Будет ли # 7671 также адресовать объединение собственных корней доверия с корнями доверия системы? Бывают ситуации, когда я хотел бы использовать пакет OS CA плюс мой собственный сертификат CA. Я не уверен, что предлагаемое решение в билете учитывает это, если только вы не можете просто указать путь туда, где хранится пакет ОС. – Carl
Думаю, это должно произойти. Прошу прокомментировать билет для дальнейшего обсуждения, хотя :). (Кроме того, если вы не возражаете изменить этот ответ на «принято», я бы предпочел, чтобы люди приняли этот совет, чем Жан-Поль в этом случае.) – Glyph