2011-08-03 67 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

相關問題