2010-02-25 59 views
0

也許某些服務器可以處理非安全協議和安全協議。 有沒有已知的方法來確定現有的TCP連接是否安全?確定TCP連接是否使用SSL

(我相信這是可能只是監控流量,並檢查一些文字是可讀的,但也許有更好或者更多詳細的建議?)

+0

這是一個系統管理/網絡問題,應該詢問http://serverfault.com/ – CuriousPanda 2010-02-25 10:01:26

+0

好的,謝謝我在serverfault問過它。但也許有人知道如何編寫程序來檢查問題?或者只是指示在哪裏尋找答案。 – noonex 2010-02-25 10:11:55

回答

1

如果您正在使用的.Net您可以使用現有的TCP連接作爲SSL連接的基礎。要以編程方式檢查服務器端口是否實現SSL,則需要建立TCP連接,然後嘗試在其上創建SSL連接。如果SSL握手失敗,將引發異常,那麼您將知道SSL在該端口上不可用。

的代碼將是沿着線:

TcpClient tcpClient = new TcpClient(); 
tcpClient.Connect(remoteEndPoint); 
SslStream sslStream = new SslStream(tcpClient.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null); 
sslStream.AuthenticateAsClient(serverCN); 

異常意味着沒有SSL。