Аутентификация Python urllib2 HTTPS и прокси NTLM
urllib2, похоже, не поддерживает HTTPS с аутентификацией прокси в целом, даже меньше с аутентификацией NTLM. Кто-нибудь знает, есть ли патч где-то для HTTPS на прокси с аутентификацией NTLM.
с уважением,
Лорен
3 ответов
поздний ответ. Urllib2 не поддерживает проксирование NTLM, но pycurl из делает. Отрывок:
self._connection = pycurl.Curl()
self._connection.setopt(pycurl.PROXY, PROXY_HOST)
self._connection.setopt(pycurl.PROXYPORT, PROXY_PORT)
self._connection.setopt(pycurl.PROXYUSERPWD,
"%s:%s" % (PROXY_USER, PROXY_PASS))
...
http://code.google.com/p/python-ntlm/
Я никогда не пробовал с HTTPS, но я думаю, что это должно работать.
EDIT: если вы используете туннелирование SSL, аутентификация прокси-сервера-плохая идея.
прокси с использованием базовой аутентификации по HTTPS не является безопасным, когда SSL туннелируется. Ваш пароль будет отправлен в clear (base64-encoded) прокси. Многие люди предполагают, что пароль будет зашифрован внутри SSL. В данном случае это не так.
Это почти невозможно поддерживать другие зашифрованные или хэшированные механизмы, такие как Digest/NTLM, потому что все они требуют согласования (несколько обменов), и это не определено в протоколе CONNECT. Это согласование происходит из диапазона HTTP-соединения. Это очень сложно реализовать в прокси / браузере.
Если это корпоративный прокси, IP ACL является единственным безопасным решением.
хороший рецепт (для HTTPS w/proxy) и обсуждение здесь, должно быть возможно объединить это с кодом python-nltm, который @ZZ уже предложил.