. NET Core Interop + AppleCrypto + SslException: недопустимый параметр - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь установить безопасное соединение WebSocket с помощью библиотеки Fleck. Я тоже пытался использовать библиотеку WebSocketSharp, но кажется, что они используют ту же инфраструктуру для установки безопасного соединения, и из-за этого появляется та же ошибка. Я использую pfx, который работает в приложении java spring, но отказывается делать это в этом. NET Базовом приложении. Я даже пытался создать самоподписанный pfx, используя этот пост:

https://www.humankode.com/asp-net-core/develop-locally-with-https-self-signed-certificates-and-asp-net-core

Тем не менее, я получаю следующее исключение:

02/13/2020 10:20:08 [Warn] Failed to Authenticate System.AggregateException: One or more errors occurred. (Authentication failed, see inner exception.)
 ---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception.
 ---> Interop+AppleCrypto+SslException: illegal parameter
   --- End of inner exception stack trace ---
   at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
   at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslStream.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Net.Security.SslStream.ThrowIfExceptional()
   at System.Net.Security.SslStream.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslStream.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
   --- End of inner exception stack trace ---

Я пробовал это на MacOS и Windows также. Я использую. NET Core 3.1. Это код, который я использую:

    _server.Certificate = new X509Certificate2(@"cert/localhost.pfx", "123456");
    _server.Start(socket =>
    {
        socket.OnOpen = () => OnOpen(socket);
        socket.OnClose = () => OnClose(socket);
        socket.OnMessage = message => OnMessage(socket, message);
    });

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...