2011-03-16 57 views
0

我已经计划使用OpenSSL将加密添加到我的服务器/客户端通信中。但我想让用户选择是否要使用SSL通道进行通信。最简单的方法是创建2套接字并将它们绑定到不同的端口,但我希望服务器只在一个端口上提供服务。在同一个服务器端口上同时支持SSL和非SSL

有无论如何打开服务器端的SSL套接字,它支持客户端传入连接的SSL和非SSL通信?

P.S.我为我的C++代码使用OpenSSL库。

回答

1

一个TLS客户端你好有一个标准格式。您可以查看第一条消息的前几个字节,检测这是否是TLS客户端hello,并相应地作出响应。

另一种解决方案是连接端口X上的未加密服务,并设置stunnel监听Y端口,在那里它将处理TLS层,并将明文转发到本地端口X.虽然这会绑定到两个端口,您的服务将只运行一次。

相关问题