【问题标题】:Twisted server TLS hanging on connection扭曲的服务器 TLS 挂在连接上
【发布时间】:2011-09-29 23:17:04
【问题描述】:

我有一个带有 TLS 身份验证的扭曲网络服务器,当我通过 SMTP 连接到它时,它似乎挂起。这是启动服务器的扭曲代码块:

(注意:certificateData 是我们的私钥和公钥连接在一起,这似乎是让自签名证书起作用的唯一方法)

customFactory = CustomSMTPFactory(portal)
certificate = PrivateCertificate.loadPEM(certificateData)
contextFactory = certificate.options(certificate)
tlsFactory = TLSMemoryBIOFactory(contextFactory, False, customFactory)

a = service.Application("Custom Server")
internet.TCPServer(5870, tlsFactory).setServiceParent(a)

在客户端,这条线只是挂起等待读取数据:

smtplib.SMTP('localhost',5870)

有什么想法吗?如何在扭曲的网络服务器上设置 TLS 身份验证?

【问题讨论】:

    标签: python ssl smtp twisted


    【解决方案1】:

    您的服务器从连接开始时启动 TLS。请改用smtplib.SMTP_SSL,这样您的客户就会期待这一点。

    【讨论】:

    • 是的,这行得通。我用另一种方式解决了我的问题——即标准 ESMTP 协议处理 tls 通信,前提是它使用私钥/公钥正确设置。所以我不需要将我的工厂包装在 TLS 工厂中——一旦连接,它将协商 TLS 通信。不过还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多