Подключение к прокси с сокетом - PullRequest
0 голосов
/ 16 января 2020

Helo,

Я пытаюсь подключиться и получить страницу с прокси только с сокетом и ssl, но со вторым запросом возникает ошибка 502 Bad Gateway.

Спасибо

Мой код

import socket
import ssl

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('localhost', 8080))
host = "www.google.com"
sock.send("""CONNECT {}:443 HTTP/1.1\r
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0\r
Proxy-Connection: keep-alive\r
Accept-Encoding: raw\r
Connection: keep-alive\r
Host: {}\r
\r
""".format(host, host).encode())
print(sock.recv(1000000).decode())

sock = ssl.wrap_socket(sock)
sock.send("""GET / HTTP/1.1\r
Host: {}\r
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0\r
\r
""".format(host).encode())
data = sock.recv(1000000).decode()
print(data)

Журнал скриптов

HTTP/1.1 200 Connection established

HTTP/1.1 502 Bad Gateway
Server: mitmproxy 4.0.4
Connection: close
Content-Length: 390
Content-Type: text/html


<html>
            <head>
                <title>502 Bad Gateway</title>
            </head>
            <body>
            <h1>502 Bad Gateway</h1>
            <p>TlsProtocolException(&quot;Cannot establish TLS with www.google.com:443 (sni: None): TlsException(&#x27;Cannot validate certificate hostname without SNI&#x27;)&quot;)</p>
            </body>
        </html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...