Уведомления

Группа в Telegram: @pythonsu

#1 Май 5, 2016 14:25:57

Ryo
Зарегистрирован: 2015-11-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

proxy + ssl

Друзья, подскажите, пожалуйста.

Есть локальная машина (которая выход к к интернету имеет через прокси). Прокси работает без логина/пароля, просто фильтрует контент. Настройки ее работы и прочие подробности мне неизвестны.

В случае необходимости обращения к интернет (и интранет) ресурсам, чтобы не получать urlib.HTTPError: HTTP Error 407: Proxy Authentication Required питоновские скрипты используют простенький обработчик:

    proxy_support = urllib2.ProxyHandler({})
    opener = urllib2.build_opener(proxy_support)
    urllib2.install_opener(opener)

С HTTPS сайтами все работает не хуже HTTP.

Не так давно поставил на локальной машине Oracle VM VirtualBox c Debian+Apache, сеть через bridget adapter, на виртуалке развернул несколько WSGI приложений (Django и чисто питоновских, без фреймворков). Есть необходимость общаться с

Из браузера работают без проблем. Пока ресурсы допускали обращение по HTTP, то из питона проблем не возникает. Но если попытаться обратиться из питона по HTTPS, проблемы сыпятся, как горох.

Ключи/сертификаты SSL на виртуалке созданы рукотворно и, разумеется, не подписаны http://help.ubuntu.ru/wiki/apache_%D0%B8_https . При обращении по HTTPS начинают падать ошибки urllib2.URLError: certificate verify failed (_ssl.c:590)

Ситуация эта нормальная (хотя до этого ни разу, в том числе и с неподписанными сертификатами не возникала), и описана в PEP476 https://www.python.org/dev/peps/pep-0476/ Там же приведено и решение проблемы:
	import ssl
	context = ssl._create_unverified_context()
	urllib.urlopen("https://no-valid-cert", context=context)

Вот только если его использовать, то начинают падать ошибки urllib2.URLError:
Tunnel connection failed: 407 Proxy Authentication Required


То же самое, если предварительно использовать urllib2.Request, или вообще воспользоваться библиотекой requests.

Есть какие-нибудь идеи?
Спасибо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version