Как решить «Не удалось установить доверительные отношения для безопасного канала SSL / TLS с полномочиями»

127
задан Jeroen 31 August 2015 в 06:49
поделиться

2 ответа

В качестве обходного пути вы можете добавить обработчик в ServicePointManager ServerCertificateValidationCallback на стороне клиента:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
    (se, cert, chain, sslerror) =>
        {
            return true;
        };

но имейте в виду, что это не очень хорошая практика , поскольку он полностью игнорирует сертификат сервера и сообщает менеджеру точки обслуживания, что любой сертификат подходит, что может серьезно подорвать безопасность клиента. Вы можете уточнить это и выполнить некоторую индивидуальную проверку (для имени сертификата, хэша и т. Д.). по крайней мере, вы можете обойти проблемы во время разработки, используя тестовые сертификаты.

191
ответ дан 24 November 2019 в 00:21
поделиться

Проблема возникает из-за того, что вы используете самоподписанный ключ. Клиент не доверяет этому ключу, и сам ключ не предоставляет цепочку для проверки или список отзыва сертификатов.

У вас есть несколько вариантов - вы можете

  1. отключить проверку сертификата на клиент (плохой ход, человек в средние атаки многочисленны)

  2. используйте makecert для создания корневого центра сертификации и создать сертификаты из этого (хорошо переместить, но CRL все еще отсутствует)

  3. создайте внутренний корневой центр сертификации, используя Сервер сертификатов Windows или другой Затем решение PKI доверяет этому корню cert (немного проблематично управлять)

  4. приобрести сертификат SSL у одного доверенных центров сертификации (дорого)

19
ответ дан 24 November 2019 в 00:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: