2016-09-26 2 views
2

Я использую Twisted (16.3) и Treq (15.1) для создания асинхронных запросов в Python (2.7).Отключить проверку сертификата SSL Twisted Agents

У меня возникли проблемы с некоторыми запросами по HTTPS.

Некоторые сайты имеют недопустимый сертификат и, таким образом, при создании запроса на них, я получаю это:

twisted.python.failure.Failure OpenSSL.SSL.Error 

Я хочу, чтобы мой клиент доверять любому серверу, в том числе без сертификатов или самостоятельно подписанных сертификатов.

Как отключить проверку сертификатов на моем клиенте?

Это вопрос по существу идентичен моему: https://stackoverflow.com/questions/34357439/ssl-options-for-twisted-agents

Спасибо!

ответ

4

Я тоже пытаюсь сделать это за последние несколько дней. Со всеми усилиями, которые я предпринял для проверки сертификата, я мог бы просто создать пару ключей и по-моему весело: D. Я нашел this comment на доске treq вопросы, которые monkeypatches вопрос:

from twisted.internet import _sslverify 
_sslverify.platformTrust = lambda : None 

Я уверен, что есть запутанный способ сделать это «правильно», но это не стоит усилий, на мой взгляд. Я сделал патч таким образом, чтобы он не переопределял platformTrust(), и я попытаюсь объединить его, но я бы не затаил дыхание. Из тон некоторых комментариев об ошибках, которые я видел в отношении корней доверия, ssl и сертификатов, я не думаю, что он будет объединен. Надеюсь, это поможет.

+0

Эй! Спасибо за ответ! Я тоже натолкнулся на этот комментарий, но это мне не помогло. Я использую агенты для своих запросов, из 'twisted.web.client import Agent'. Я угадываю код, '_sslverify.platformTrust = lambda: None' специально перезаписывает платформуTrust, чтобы ничего не делать. Вы знаете, это применимо к агентам? Так есть ли что-то еще, которое должно измениться, если используются агенты? – mayk93

+0

Это сработало для меня, и я использовал специальный агент, а также –

+0

Это уже намекает на меня почти на день. Я не могу поверить, что плохой Python/Twisted при обработке сертификатов для сценариев production/dev - это eveyone в сообществе python с использованием реальных сертификатов или загрязнение их компьютеров собственным CA или просто не тестирование SSL/TLS? – jmc

Смежные вопросы