title: Convert HTTP Proxy to HTTPS Proxy in Twisted
body: <p>Recently I have been playing around with the HTTP Proxy in twisted. After much trial and error I think I finally I have something working. What I want to know though, is how, if it is possible, do I expand this proxy to also be able to handle HTTPS pages? Here is what I've got so far:</p>
  
  <pre><code>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()
  </code></pre>
  
  <p>As this code demonstrates, for the sake of example for now I am just printing out whatever is going through the connection. Is it possible to handle HTTPS with the same classes? If not, how should I go about implementing such a thing?</p>