Недавно я поиграл с прокси HTTP в витой. После долгих проб и ошибок я думаю, что наконец-то у меня что-то работает. Однако я хочу знать, как, если это возможно, расширить этот прокси-сервер, чтобы он также мог обрабатывать страницы HTTPS? Вот что у меня так далеко:
from twisted.internet import reactor
from twisted.web import http
from twisted.web.proxy import Proxy, ProxyRequest, ProxyClientFactory, ProxyClient
class HTTPProxyClient(ProxyClient):
def handleHeader(self, key, value):
print "%s : %s" % (key, value)
ProxyClient.handleHeader(self, key, value)
def handleResponsePart(self, buffer):
print buffer
ProxyClient.handleResponsePart(self, buffer)
class HTTPProxyFactory(ProxyClientFactory):
protocol = HTTPProxyClient
class HTTPProxyRequest(ProxyRequest):
protocols = {'http' : HTTPProxyFactory}
def process(self):
print self.method
for k,v in self.requestHeaders.getAllRawHeaders():
print "%s : %s" % (k,v)
print "\n \n"
ProxyRequest.process(self)
class HTTPProxy(Proxy):
requestFactory = HTTPProxyRequest
factory = http.HTTPFactory()
factory.protocol = HTTPProxy
reactor.listenSSL(8001, factory)
reactor.run()
Как показывает этот код, сейчас для примера я просто распечатываю все, что происходит через соединение. Можно ли обрабатывать HTTPS с теми же классами? Если нет, то как мне реализовать такую вещь?