【发布时间】:2020-06-21 00:27:05
【问题描述】:
我正在尝试使用基本身份验证(用户:使用 b64 编码的传递)连接到经过 https 身份验证的代理。我能够使非身份验证代理正常工作,但我最近购买了代理,现在我需要使身份验证工作。这看起来很简单,我所要做的就是添加一个“代理授权”标题,它就可以工作了。这样做后它工作了,它给了我一个“200连接建立”的响应。完成此操作后,我尝试使用“ssl”库对套接字进行 ssl 包装。这导致我收到以下错误:“tlsv1 解码错误”。在查看了一些堆栈帖子后,我认为我应该更改正在使用的协议版本,我尝试使用所有其他可用版本,但由于某种原因仍然导致我上面所说的错误(这很奇怪,因为我没有使用“tlsv1” .
credentials = base64.encodebytes(b"user:pass").decode().strip(r"\n")
s.connect((proxy[0], int(proxy[1])))
s.send(f"CONNECT site.com:443 HTTP/1.1\r\nProxy-Authorization: Basic {credentials}\r\nHost: site.com\r\n\r\n".encode())
connect_response = s.recv(4096)
print(connect_response)
s = wrap_socket(s)
在进行更多研究后,我发现它可能与“领域”响应标头有关。我找不到任何关于此的文档,我不知道它的用途。这让我相信我做错了什么,在我尝试包装套接字之前我应该有更多的步骤。 我的问题是为什么我在尝试包装套接字时会收到此错误/回溯,我该如何解决这个问题?
【问题讨论】:
标签: python sockets ssl http-proxy python-sockets