Сертификат WCF с самоподпиской не доверяется клиенту

У меня есть служба WCF, которая ТОЛЬКО используется между двумя серверными машинами. Он НИКОГДА не будет использоваться публично.

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

Я создал сертификат с использованием IIS7, установил его на клиентской машине с помощью IE и MMC (Personal, TrustedRoot, сторонних и доверенных лиц).

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

Из IE я получаю обычный "Проблема с этим сертификатом безопасности веб-сайта".

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

Почему это не работает?

Ответ 1

Вы уверены, что ваша самоподписанная сертификация находится в хранилище сертификатов доверенных корневых центров сертификации на клиентской машине, которая будет получать доступ к вашей службе WCF? См. Скриншот ниже самозаверяющего сертификата, которому доверяет одна из моих машин Windows Vista.

Вы также уверены, что ваш сертификат является самозаверяющим сертификатом. Смотрите скриншот в конце одного из моих самозаверяющих сертификатов.

enter image description here

enter image description here

enter image description here

Обновленная информация:

Откажитесь от this для публикации информации о том, как использовать служебную программу SelfSSL7 для создания самозаверяющих сертификатов, содержащих несколько имен хостов.

Здесь другая ссылка с хорошей информацией о файле SelfSSL7.exe и загрузке.

Ответ 2

У меня было это сегодня, но с IIS7. Если вы используете IIS для генерации сертификата (inetmgr- > выберите home node, затем выберите "Сертификаты сервера", используйте правильное меню, чтобы создать сертификат, сертифицированный по собственной инициативе. Атрибут "выдан" указан с использованием полного доменного имени вашего компьютера - например "mymachine.myintranet.copp.net" или что-то еще.

До тех пор, пока вы получите полное доменное имя для соединения с сервисом - например, "mymachine.myintranet.copp.net/myservice/service.svc", ошибка будет.

Если вы используете альтернативный URL-адрес, например IP-адрес или localhost, возникает ошибка. Итак, машина выше была, очевидно, известна как johnma в его сети, тогда она работает.

Ответ 3

Причина, по которой он не работает, заключается в том, что IE обнаруживает, что сертификат не создан из действительного центра сертификации (центра сертификации). Самоподписанные сертификаты больше для тестирования, чем что-либо еще. Не было бы особого смысла для SSL, если бы вас не предупредили об этом.