ranio Ответов: 0

Как избежать исключения при попытке рукопожатия с сервером с ssl-сертификатом через веб-сокет в C#?


Я пытаюсь это сделать
handshake
через веб-сокет в c# на сервер с Самозаверяющим сертификатом и получил исключение, как показано ниже:

Exception got as below:
<pre>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.


Я скачал ssl сертификат полученный с сервера и успешно импортированный на стороне клиента согласно приведенной ниже ссылке:

https://support.quovadisglobal.com/kb/a66/how-do-i-install-a-digital-certificate-onto-windows-7.aspx

Установленный сертификат поступил в промежуточный магазин на проверку. Но даже после этого при попытке общения получаю одно и то же исключение:
базовое соединение было закрыто: не удалось установить доверительные отношения для защищенного канала SSL/TLS. ---> Система.Безопасность.Идентификация.Исключение AuthenticationException: удаленный сертификат недействителен в соответствии с процедурой проверки.

Что я уже пробовал:

Основной код, как показано ниже:
На стороне сервера он размещается следующим образом https://10.15.1.5/Test.aspx
Подключение к клиенту, как показано ниже:
Подключения("ВСС://10.15.1.5/тест.aspx-файл/)
public async Task Connect(string uri)
{



Нить.Спать(1000);

пробовать
{
txtLog.Text += "клиент:процесс подключения запущен под" + MethodInfo.GetCurrentMethod().Name + Environment.NewLine;
webSocket = новый ClientWebSocket();

ждите webSocket.ConnectAsync(новый Uri(uri), CancellationToken.Никто);



}
поймать (исключение бывший)
{
txtError.Text += "Client:Connectivity Process Failure under" + MethodInfo.GetCurrentMethod().Name + ex.Message.ToString() + Environment.NewLine;
txtError.Text += "клиент:сбой процесса подключения под" + MethodInfo.GetCurrentMethod().Name + ex.InnerException.ToString() + Environment.NewLine;
txtError.Text += "Client:Connectivity Process Failure under" + MethodInfo.GetCurrentMethod().Name + ex.StackTrace.ToString() + Environment.NewLine;

//throw ex;



}
наконец
{
if (webSocket != null)
через WebSocket.Располагать();

}



}

0 Ответов