Сертификат недействителен запрещен netTCP в WCF - PullRequest
2 голосов
/ 23 февраля 2011

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

Я сгенерировал некоторые сертификаты, используя makecert.exe.Для начала я создал два, которые я только что назвал WCFclient и WCFServer, и я добавил их в доверенную папку для текущего пользователя в mmc.Однако это привело к ошибке:

Проверка подлинности не удалась для исходящего сообщения.Ожидаемый идентификатор DNS удаленной конечной точки был «localhost», но удаленная конечная точка предоставила DNS-запрос «WCfServer».Если это допустимая удаленная конечная точка, вы можете устранить проблему, явно указав DNS-идентификатор «WCfServer» в качестве свойства Identity EndpointAddress при создании прокси-канала канала

, который, как я выяснил, произошел из-за выдачи сертификатав несуществующий домен под названием "WCFServer".Поэтому я создал еще один сертификат и дал ему CN «localhost» и попытался настроить его и на клиенте, и на сервере.Теперь я получаю это сообщение:

Удаленный сертификат недействителен в соответствии с процедурой проверки.

Я установил certificateValidationMode = "None" в моей конфигурации клиента, так что я не думаю, что это связано с истекшим сертификатом или тому подобное.Кто-нибудь знает, что еще может быть причиной этой ошибки?Это потому, что я пытаюсь использовать один и тот же сертификат как на клиентском, так и на серверном концах, и если да, то как мне настроить файлы конфигурации, чтобы избежать получения предыдущего сообщения об ошибке об идентичности DNS?

1 Ответ

1 голос
/ 23 февраля 2011

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

<endpoint  name="..." address="..." binding="..." contract="...">
  <identity>
    <dns value="WCFServer" />
  </identity>
</endpoint>

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

...