Как связать веб-сокет с протоколом https в ASP.NET с помощью C#?
У меня возникла проблема при попытке подключиться через веб-сокет к url-адресу с протоколом wss. Размещенный url - адрес с http отлично работает, когда я пытаюсь потреблять от клиента с протоколом ws. Но с https я получаю ниже исключение. Я создал самозаверяющий сертификат в IIS и смог запустить сервер. Но при попытке подключиться я получаю ниже исключение.
Исключение составляет как показано ниже:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
Что я уже пробовал:
Основной код выглядит следующим образом:
Сервер
HttpListener httpListener = new HttpListener(); httpListener.Prefixes.Add(httpListenerPrefix); httpListener.Start();
Клиент
public async Task Connect(string uri) { //NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:Handshake Connectivity Process Sending Starts", true); Thread.Sleep(1000); //wait for a sec, so server starts and ready to accept connection.. // ClientWebSocket webSocket = null; try { webSocket = new ClientWebSocket(); await webSocket.ConnectAsync(new Uri(uri), CancellationToken.None); //NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:Handshake Connectivity Process Sending Ends", true); //await Task.WhenAll(Receive(webSocket)); } catch (Exception ex) { txtError.Text += "Client:HandShake Connectivity Process Failed: "+ ex.Message.ToString()+" "+ MethodInfo.GetCurrentMethod().Name + Environment.NewLine; txtError.Text += "Client:HandShake Connectivity Process Failed: " + ex.InnerException.ToString() + " " + MethodInfo.GetCurrentMethod().Name + Environment.NewLine; txtError.Text += "Client:HandShake Connectivity Process Failed: " + ex.StackTrace.ToString() + " " + MethodInfo.GetCurrentMethod().Name + Environment.NewLine; //NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:HandShake Connectivity Process Failed: " + ex.Message.ToString() + "", true); } finally { if (webSocket != null) webSocket.Dispose(); //Console.WriteLine(); //Console.WriteLine("WebSocket closed."); } // NeSTCommonClass.WriteTextFile(LogPath + Logfilename, "Client:Handshake Connectivity Process Sending from Client Level Process Ends", true); }
Jochen Arndt
Введите "удаленный сертификат недействителен в соответствии с процедурой проверки" в поле ввода вашей любимой поисковой системы.
Кроме того, почему вы удалили свой предыдущий вопрос?
Было ли это решено моим комментарием?