如何在扭曲的端口代理中添加SSL功能

时间:2015-07-08 17:44:17

标签: python twisted

我有一个端口代理的以下代码。我该如何添加 ssl支持,以便代理可以连接到使用ssl监听的服务器。

这是代码:

    from twisted.internet import reactor
    from twisted.protocols import portforward

    class ProxyServer(portforward.ProxyServer):
        def dataReceived(self, data)
        portforward.ProxyServer.dataReceived(self, data)

    class ProxyFactory(portforward.ProxyFactory):
        protocol = ProxyServer


        reactor.listenTCP(8080,ProxyFactory("127.0.0.1",443) )
        reactor.run()

1 个答案:

答案 0 :(得分:1)

检查此链接。这段摘录可能与您正在寻找的内容相关。 https://twistedmatrix.com/documents/13.2.0/core/howto/ssl.html

with open('server.pem') as keyAndCert:
    cert = ssl.PrivateCertificate.loadPEM(keyAndCert.read())

log.startLogging(sys.stdout)
factory = Factory()
factory.protocol = echoserv.Echo
reactor.listenSSL(8000, factory, cert.options())
reactor.run()

"请注意,在这些SSL版本中,来自TCP版本的echo客户端和服务器示例的所有协议代码是相同的(导入的还是重复的) - 只有用于启动网络操作的reactor方法不同"