WCF Не удалось установить доверительные отношения для безопасного канала SSL / TLS с полномочиями - PullRequest
0 голосов
/ 03 января 2012

Сценарий:

У меня есть веб-служба WCF под названием SERVICEA, размещенная в Azure. Он использует самозаверяющий сертификат для HTTPS. Эта SERVICEA проверяет входящий запрос и определяет, следует ли звонить:

  1. СЕРВИСБ ИЛИ
  2. SERVICEC

И SERVICEB, и SERVICEC также используют самоподписанный сертификат. для https.

ПРОБЛЕМА:

Когда я развертываю SERVICEA и пытаюсь вызвать так, чтобы он вызывал SERVICEB, я получаю сообщение об ошибке ниже:

*

Не удалось установить доверительные отношения для безопасного канала SSL / TLS. с полномочиями "СЕРВИСБ ..."

*.

Обратите внимание, что в сообщении об ошибке указано SERVICEB ..

Anyidea, как я могу решить эту проблему, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 03 января 2012

Вам необходимо проверить сертификат сервера, если он сам подписан, как показано ниже:

ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) => true;
0 голосов
/ 02 января 2014

Раджеш на что-то, но его ответ вообще отключает проверки сертификации.

Вместо этого я бы предложил добавить обработчик событий, такой как следующий, в ваше приложение:

ServicePointManager.ServerCertificateValidationCallback +=  (sender, certificate, chain, errors) =>
{
    var request = sender as HttpWebRequest;
    if (request != null && request.Address.Host == "<Your domain name goes here>")
        return true;

    return errors == SslPolicyErrors.None;
};
0 голосов
/ 03 января 2012

Вы хотите перехватить ответ ServerCertificateValidationCallback и заставить его игнорировать сертификаты по вашему выбору. Вот достойная статья, которая объясняет, как: http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/

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