|
Сложности с SslStream при портировании с Java
|
|||
---|---|---|---|
#18+
Есть сервер и клиент на Java. Хочу переделать клиент на C#. Связь через сокет и SSL. Сервер Java, насколько я могу видеть, не использует сертификат,а каким-то образом работает на прямую. Все, что видел, связанного с C# использует X.509 сертификат... В растерянности - как подружить их между собой. =СерверSSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); SSLServerSocket serverSocket = (SSLServerSocket) ssf.createServerSocket(this.serverPort); String[] suites = serverSocket.getSupportedCipherSuites(); serverSocket.setEnabledCipherSuites(suites); SSLSocket clientSocket = null; clientSocket = (SSLSocket) serverSocket.accept(); clientSocket.startHandshake(); InputStream sin = clientSocket.getInputStream(); OutputStream sout = clientSocket.getOutputStream(); DataInputStream in = new DataInputStream(sin); DataOutputStream out = new DataOutputStream(sout); ... =КлиентInetAddress e = InetAddress.getByName(this.socketip); SSLSocketFactory sf = (SSLSocketFactory) SSLSocketFactory.getDefault(); SSLSocket socket = (SSLSocket) sf.createSocket(e, socketport); String[] suites = socket.getSupportedCipherSuites(); socket.setEnabledCipherSuites(suites); socket.startHandshake(); socket.setSoTimeout(10000); InputStream sin = socket.getInputStream(); OutputStream sout = socket.getOutputStream(); DataInputStream in = new DataInputStream(sin); DataOutputStream out = new DataOutputStream(sout); ... На попытку просто подключится =примерно такstring ip = ... int port = ... TcpClient sslClient = new TcpClient(ip, port); SslStream sslStream = new SslStream(sslClient.GetStream()); sslStream.AuthenticateAsClient(ip); Получаю ошибку: =Ошибка System.Security.Authentication.AuthenticationException: Ошибка вызова SSPI, см. внутреннее исключение. ---> System.ComponentModel.Win32Exception: Получено непредвиденное сообщение или оно имеет неправильный формат --- Конец трассировки внутреннего стека исключений --- в System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) в System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) в System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) в System.Net.Security.SslStream.AuthenticateAsClient(String targetHost) в SSLConnect.Program.Main(String[] args) в C:\Users\SC\Documents\Visual Studio 2012\Projects\SSLConnect\SSLConnect\Program.cs:строка 20 (там где AuthenticateAsClient) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2013, 06:19 |
|
Сложности с SslStream при портировании с Java
|
|||
---|---|---|---|
#18+
starcheater, Я конечно не знаю сути конкретной задачи. Но что-то кажется, что Вы изобретаете велосипед. Возможно стоит воспользоваться IIS, развернуть службу(REST или через SOAP, как там для вас будет лучше), настроить работу через SSL. С клиентом так вообще проблем возникнуть не должно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 18:03 |
|
|
start [/forum/topic.php?fid=20&msg=38397986&tid=1404032]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
67ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 344ms |
total: | 505ms |
0 / 0 |