2011-08-03 29 views
1

我写过一个简单的客户端和服务器。 它们都可以配置为使用SSL或不。您可以在客户端和服务器中进行设置。 我的问题是,如果我尝试将SSL连接到带有SSL的服务器设置,则连接将会停止。 (当然......这很正常)。 我的客户端如何知道他正在尝试使用SSL将SSL连接到服务器?反之亦然?如何知道我的服务器是否使用SSL(带扭曲)

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

Thans预先为任何答案=)

+4

出于好奇,为什么你没有接受过你的问题的答案?在撰写本文时,您已经提出了8个问题,并且从未投票过任何事或标记过答案。您是否阅读了关于在本网站上提问的常见问题解答? – MattH

+0

简单,你必须注册,我不想。你想问我为什么我没有脸谱或推特或...?谢谢=) – unpythonicguy

+0

我不知道你的意思是“注册”...你已经有一个用户名。您只需点击答案旁边的“检查”即可接受答案。 – agf

回答

5

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

或者

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

+0

使用不同的端口不是一个好主意,因为端口可以在服务器的配置中改变。我正在考虑STARTTLS,但这不是我想要的。它将解决当客户端使用SSL和服务器时连接卡住的问题(反之亦然),但它会强制客户端连接到服务器想要的(ssl或不)。我会考虑这一点。谢谢。 – unpythonicguy

0

最好的解决方案将是我的客户端自动检测服务器是否使用SSL 与否和做适当的连接(TCP或SSL)。

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

+0

'不可能'或许夸大了情况。例如,如果您定义使用[基于DNS的服务发现](http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt)的协议,客户端可以确定是否该协议的安全实现可用。 – MattH

+0

我必须看看这个。谢谢。 – unpythonicguy

相关问题