Как решить "Не удалось установить доверительные отношения для безопасного канала SSL / TLS с полномочиями" - PullRequest
124 голосов
/ 16 ноября 2009

Действительно думал, что я исправил эту проблему, но раньше она была только замаскирована.

У меня есть служба WCF, размещенная в IIS 7 с использованием HTTPS. Когда я просматриваю этот сайт в Internet Explorer, он работает как чудо, потому что я добавил , добавил сертификат в локальное корневое хранилище сертификатов.

Я занимаюсь разработкой на 1 машине, поэтому клиент и сервер - это одна машина. Сертификат подписывается непосредственно из оснастки управления IIS 7.

Я постоянно получаю эту ошибку сейчас ...

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

... при вызове из клиентской консоли.

Я вручную предоставил себе разрешения и сетевой сервис для сертификата, используя findprivatekey и используя cacls.exe.

Я попытался подключиться к сервису с помощью SOAPUI, и это работает, поэтому это должно быть проблемой в моем клиентском приложении, код которого основан на том, что использовалось для работы с http.

Куда еще я могу обратиться? Кажется, я исчерпал все возможности, почему я не могу подключиться?

Ответы [ 16 ]

4 голосов
/ 17 июня 2011

У меня была похожая проблема с самозаверяющим сертификатом. Я мог бы разрешить его, используя имя сертификата, такое же, как полное доменное имя сервера.

В идеале, часть SSL должна управляться на стороне сервера. Клиенту не требуется устанавливать какой-либо сертификат для SSL. Также в некоторых постах упоминается об обходе SSL из клиентского кода. Но я совершенно не согласен с этим.

3 голосов
/ 27 августа 2012

Я просто перетащил сертификат в папку «Trusted Root Certification Authorities» и вуаля все работало хорошо.

О. И я сначала добавил следующее из командной строки администратора:

netsh http add urlacl url=https://+:8732/Servicename user=NT-MYNDIGHET\INTERAKTIV

Я не уверен в названии, которое вам нужно для пользователя (мое, как вы видите, норвежское!): user=NT-AUTHORITY/INTERACTIVE?

Вы можете увидеть все существующие urlacl, выполнив команду: netsh http show urlacl

0 голосов
/ 16 сентября 2017

Только что исправили похожую проблему.

Я понял, что у меня есть пул приложений, который работал под учетной записью, которая имела разрешение на чтение только того сертификата, который он использовал.

.NET-приложение могло правильно получить сертификат, но это исключение возникло только при вызове GetRequestStream ().

Разрешениями на сертификаты можно управлять с помощью консоли MMC

0 голосов
/ 06 октября 2015

Это произошло при попытке подключиться к службе WCF, используя только имя хоста, например https://host/MyService.svc при использовании сертификата, привязанного к имени, например host.mysite.com.

Переключение на https://host.mysite.com/MyService.svc и это решило его.

0 голосов
/ 08 мая 2013

Это произошло при попытке подключиться к службе WCF через. IP например https://111.11.111.1:port/MyService.svc при использовании сертификата, привязанного к имени, например, mysite.com.

Переключение на https://mysite.com:port/MyService.svc разрешило его.

0 голосов
/ 14 апреля 2011

Добавьте это к своему клиентскому коду:

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
    delegate
    {
        return true;
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...