如何知道我的服务器是否使用SSL(使用Twisted)

时间:2011-08-03 10:35:19

标签: python ssl tcp twisted

我写了一个简单的客户端和服务器。 它们都可以配置为使用SSL。您可以在客户端和服务器中进行设置。 我的问题是,如果我尝试在没有SSL的情况下连接到使用SSL的服务器设置,则会建立连接但卡住了。 (当然......这很正常)。 我的客户如何知道他正在尝试使用SSL连接到没有SSL的服务器?反之亦然?

最好的解决方案是,如果服务器使用SSL,我的客户端会自动检测并执行正确的连接(TCP或SSL)。

预先找到任何答案=)

2 个答案:

答案 0 :(得分:5)

使用不同的端口号进行SSL连接。这就是HTTP / HTTPS的使用方式。

或者

在协议中定义一个命令,将连接转换为SSL,例如STARTTLS,基于能力协商。这是在SMTP中实现同样目标的一种方式。

答案 1 :(得分:0)

  

如果服务器使用SSL,最好的解决方案是我的客户端自动检测   或不进行正确的连接(TCP或SSL)。

不可能。 SSL连接中的第一个事件是来自客户端的消息,而不是来自服务器的消息。