Я создаю приложение WCF, в котором я буду использовать сертификаты для шифрования связи между клиентом и сервером. В моей среде разработки я хочу использовать сертификат test/self signed, который я создал с помощью makecert. (Только у сервера будет сертификат, клиент не будет).
Я установил сертификат в хранилище сертификатов, и все работает нормально. На клиенте certificateValidationMode в настоящее время установлен как "false", так как я работаю с тестовым сертификатом.
Моя проблема:
В app.config на клиенте мне нужно указать элемент идентификации как это:
<endpoint ... >
<identity>
<dns value="<Name-Of-Server-Computer>"/>
</identity>
</endpoint>
Если я удалю элемент идентификации, я получаю следующее сообщение об ошибке в клиенте, когда я пытаюсь подключиться к серверу:
Ошибка проверки подлинности для исходящего сообщения. Ожидаемый идентификатор DNS удаленной конечной точки был "localhost", но удаленная конечная точка предоставила DNS-заявку "Name-of-Server-Computer". Если это законная удаленная конечная точка, вы можете устранить эту проблему, явно указав идентификатор DNS "Имя-сервер-компьютер" как свойство Identity EndpointAddress при создании прокси-сервера канала.
Итак, вот мои вопросы:
-
Проверяется ли проверка подлинности только при использовании тестового/самозаверяющего сертификата? Когда я развертываю свое приложение с использованием реального, надежного, сертификата, приобретенного у ЦС, будет ли выполняться проверка подлинности?
-
Есть ли способ отключить проверку личности? Я знаю, что могу создать собственный собственный сертификат проверки подлинности, но, похоже, не существует способа переопределить проверку идентификации, используя эти.