Клиент WCF работает только после доступа к URL через IE - PullRequest
0 голосов
/ 04 октября 2011

У нас есть клиент wcf, который вызывает внешний веб-сервис.Доступ к сервису осуществляется через SSL.Сертификат не является самоподписанным сертификатом.Он выдан Verisign.

Клиент размещен в IIS 6, а идентификатор пула приложений является пользователем службы домена.

Каждый раз, когда мы хотим, чтобы наш клиент получил доступ к удаленной службе, мы получаемследующее общеизвестное исключение: «Не удалось установить доверительные отношения для безопасного канала SSL / TLS с полномочиями - ..»

Оказалось, что как только вы обращаетесь к URL с помощью IE на том же сервере, наш клиент WCFработает так, как ожидалось, и сертификат принят!

Мой вывод таков, что URL-адрес, доступный через IE, изменил сервер таким образом, что наш клиент WCF сможет выполнить проверку позже.Чего не хватает нашему клиенту WCF?

(я знаю, что можно обойти проверку сертификата, вернув true в ServerCertificateValidationCallback, но это не вариант для производства.)

1 Ответ

1 голос
/ 14 октября 2011

Учитывая описанную ситуацию, я подозреваю, что ваш размещенный клиент IIS не может загрузить корневой сертификат Verisign.И мне всегда немного неясно, под какой учетной записью такой клиент на основе IIS пытается получить доступ к хранилищу сертификатов.Это может быть пользователь вашей учетной записи службы домена, это может быть пользователь ASP.NET, это может быть какая-то другая системная учетная запись.Это часто приводит к ошибке.

Когда вы просматриваете сервис с IE, нет никаких сомнений в том, что пользователь (ваши собственные учетные данные) может загрузить корневой сертификат Verisign и правильно разрешить доверительные отношения.

Пожалуйста:

  1. Убедитесь, что корневой сертификат Verisign в хранилище доверенных корневых органов находится под Локальной учетной записью компьютера
  2. .ваш клиент ссылается на правильный корневой сертификат для загрузки из правильного хранилища.
  3. Возможно, вы захотите запустить ProcessMonitor, чтобы узнать, какой пользователь пытается загрузить сертификат из хранилища.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...