Пытаюсь запустить примеры из NET.SDK server, client, client2 – то что касается SSL.
На сертификатах созданных с помощью makecert все работает замечательно.
На тестовых сертификатах, созданных УЦ Криптопро, происходит ошибка.
Ошибка происходит на стороне сервера
sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired, SslProtocols.Tls, true);
A call to SSPI failed, see inner exception + The specified data could not be decrypted
На форуме нашел похожий вопрос где причиной было отсутствие серверной лицензии, в моем случае все на месте – CryptoProCSP серверная и клиентская лицензии до конца 2012 года.
Серверный сертификат - Server Authentication (1.3.6.1.5.5.7.3.1) - StoreLocation.LocalMachine
Клиентский - Client Authentication (1.3.6.1.5.5.7.3.2) - StoreLocation.CurrentUser
Попытки запуска под WXP и W7 дают одно и то же.
В чем может быть причина?
System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.Componen
tModel.Win32Exception: The specified data could not be decrypted
--- End of inner exception stack trace ---
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Ex
ception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncReq
uest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncReq
uest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRe
quest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateReq
uired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
at Samples.Ssl.Server.ProcessClient(TcpClient client) in E:\a\Ssl\cs\Server.cs:line 96