urllib2似乎一般不支持使用代理身份验证的HTTPS,甚至更少使用NTLM身份验证。任何人都知道在使用NTLM身份验证的代理服务器上是否存在HTTPS补丁。
此致
劳伦
答案 0 :(得分:6)
迟到的回复。 Urllib2不支持NTLM代理,但pycurl支持NTLM代理。摘录:
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))
...
答案 1 :(得分:2)
http://code.google.com/p/python-ntlm/
我从未尝试使用HTTPS,但我认为它应该可行。
编辑:如果您使用的是SSL隧道,则代理身份验证不是一个好主意。
通过隧道传输SSL时,使用基本身份验证通过HTTPS的代理是不安全的。您的密码将以明文(Base64编码)发送给代理。很多人认为密码将在SSL内部加密。在这种情况下并非如此。
几乎不可能支持像Digest / NTLM这样的其他加密或散列机制,因为它们都需要协商(多次交换)并且没有在CONNECT协议中定义。此协商发生在HTTP连接的带外。在代理/浏览器中也很难实现。
如果这是企业代理,则IP ACL是唯一安全的解决方案。
答案 2 :(得分:1)
良好的配方(对于HTTPS w / proxy)和讨论here,应该可以使用@ZZ已经建议的python-nltm代码来融合它。