使用Twisted的基本SSL服务器未响应

1 投票
2 回答
1106 浏览
提问于 2025-04-16 01:13

我现在正在尝试用Twisted搭建一个基本的SSL服务器。我从他们的网站上复制了以下示例:

from twisted.internet import ssl, reactor
from twisted.internet.protocol import Factory, Protocol

class Echo(Protocol):
    def dataReceived(self, data):
        """As soon as any data is received, write it back."""
        print "dataReceived: %s" % data
        self.transport.write(data)

if __name__ == '__main__':
    factory = Factory()
    factory.protocol = Echo
    print "running reactor"
    reactor.listenSSL(8080, factory,
                      ssl.DefaultOpenSSLContextFactory(
            "./test/privatekey.pem", "./test/cacert.pem"))
    reactor.run()

然后我试着用Firefox访问这个服务器,把网址设置为 https://localhost:8080,但我没有收到任何响应。不过,我确实看到数据到达了服务器。你们知道为什么我没有收到响应吗?

2 个回答

2

你没有把一个http头信息发回给浏览器,而且你也没有关闭连接。

1

你这里实现的是一个SSL回显服务器,而不是HTTPS服务器。要进行交互测试,使用openssl s_client命令,而不是用火狐浏览器(或者其他任何HTTP客户端)。

撰写回答