2011-03-16 97 views
0

我已經計劃使用OpenSSL將加密添加到我的服務器/客戶端通信中。但我想讓用戶選擇是否要使用SSL通道進行通信。最簡單的方法是創建2套接字並將它們綁定到不同的端口,但我希望服務器只在一個端口上提供服務。在同一個服務器端口上同時支持SSL和非SSL

有無論如何打開服務器端的SSL套接字,它支持客戶端傳入連接的SSL和非SSL通信?

P.S.我爲我的C++代碼使用OpenSSL庫。

回答

1

一個TLS客戶端你好有一個標準格式。您可以查看第一條消息的前幾個字節,檢測這是否是TLS客戶端hello,並相應地作出響應。

另一種解決方案是連接端口X上的未加密服務,並設置stunnel監聽Y端口,在那裏它將處理TLS層,並將明文轉發到本地端口X.雖然這會綁定到兩個端口,您的服務將只運行一次。

相關問題