В качестве обходного пути вы можете добавить обработчик в ServicePointManager
ServerCertificateValidationCallback
на стороне клиента:
System.Net.ServicePointManager.ServerCertificateValidationCallback +=
(se, cert, chain, sslerror) =>
{
return true;
};
но имейте в виду, что это не очень хорошая практика , поскольку он полностью игнорирует сертификат сервера и сообщает менеджеру точки обслуживания, что любой сертификат подходит, что может серьезно подорвать безопасность клиента. Вы можете уточнить это и выполнить некоторую индивидуальную проверку (для имени сертификата, хэша и т. Д.). по крайней мере, вы можете обойти проблемы во время разработки, используя тестовые сертификаты.
Проблема возникает из-за того, что вы используете самоподписанный ключ. Клиент не доверяет этому ключу, и сам ключ не предоставляет цепочку для проверки или список отзыва сертификатов.
У вас есть несколько вариантов - вы можете
отключить проверку сертификата на клиент (плохой ход, человек в средние атаки многочисленны)
используйте makecert для создания корневого центра сертификации и создать сертификаты из этого (хорошо переместить, но CRL все еще отсутствует)
создайте внутренний корневой центр сертификации, используя Сервер сертификатов Windows или другой Затем решение PKI доверяет этому корню cert (немного проблематично управлять)
приобрести сертификат SSL у одного доверенных центров сертификации (дорого)