我只需要使用一個密碼 - 「ADH-RC4-MD5」連接到服務器。 我正在尋找一個通用的解決方案,它將使我能夠檢查服務器正在使用的密碼(我是一個配置服務器,充當許多其他應用服務器的客戶端,需要連接並獲取數據 - 每次都可以成爲一個不同的服務器)。使用與默認密碼不同的密碼
我到目前爲止的流量爲:
TcpClient tcpClient = new TcpClient(serverName, port);
SslStream sslStream = new SslStream(tcpClient.GetStream(), false, null, null, EncryptionPolicy.RequireEncryption);
sslStream.AuthenticateAsClient(HostName);
我一直在崩潰的AuthenticateAsClient
。原因是一個AS只能使用上述密碼。
我已驗證這是SslScan tool的情況。
我試圖通過政策編輯器(gpedit.msc在命令行) 輸入此密碼,但再次沒有運氣。
基本上我正在尋找一種方法來動態地使用代碼中的密碼。
我有一個工作Java代碼:
sslsocket.setNeedClientAuth(true);
String[] list = new String[1];
list[0] = "ADH-RC4-MD5";
sslsocket.setEnabledCipherSuites(list);
C#等同的任何想法?
SSL的工作方式是,客戶端將它支持的密碼套件列表發送給服務器。 (這是通過'AuthenticateAsClient'方法完成的。)服務器選擇它想要使用的密碼套件。如果列表不包含服務器支持的密碼套件,則SSL連接將中止。 – dtb
感謝您的超級快速回復。但是如果我知道服務器只有一個密碼,那麼我作爲客戶端需要使用它嗎? – gilad
然後你需要找到一個支持這個密碼套件的客戶端實現。 .NET SslStream不能使用新的密碼套件進行擴展;我相信它只是使用Windows提供的任何東西。 – dtb