Проверка сертификата не удалась - PullRequest
1 голос
/ 24 февраля 2012

Актеры

-Asp.net сайт - Клиент-Wcf services - Сервер

Оба приложения работают на IIS-7.

Я хочу провести интеграционное тестирование между двумя приложениями.Клиент обращается к серверу через «https».Я создал сертификат и назначил его на сервер.Я также добавил сертификат в «Доверенные корневые центры сертификации», чтобы он считался действительным сертификатом.Когда я обращаюсь к сервисам сервера через мой браузер (IE, chrome ...), сертификат оказывается действительным.Но когда мое клиентское приложение пытается получить доступ к серверу, я получаю следующую ошибку:

Could not establish trust relationship for the SSL/TLS secure channel with authority **** --->
The remote certificate is invalid according to the validation procedure.

Можно ли пропустить процедуру проверки или сделать сертификат действительным для моего клиентского приложения?

Просто чтобы знать:1. Я не могу купить сертификат, потому что я буду использовать его только в целях тестирования.2. Я не могу внести какие-либо изменения в любой код приложения (сервер-клиент)

Ответы [ 3 ]

1 голос
/ 28 февраля 2012

Мне наконец удалось это выяснить.

Проблема заключалась в предыдущем (просроченном) сертификате с тем же именем, который уже был добавлен в 'Trusted Root Certification Authorities' . Каждый раз, когда я устанавливал свой новый сертификат через 'Мастер импорта сертификатов' (или через MMC), мастер сообщал мне, что он был успешно добавлен. Однако он сохранял экземпляр предыдущего сертификата, не перезаписывая его.

0 голосов
/ 24 февраля 2012

Как вы установили сертификат в доверенное корневое хранилище?

Если вы прошли через браузер, скорее всего, вы добавили его только текущему пользователю. Попробуйте добавить его через оснастку MMC для учетной записи локального компьютера; Здесь мы устанавливаем наши самозаверяющие сертификаты IIS Express, и WCF, похоже, доволен ими.

0 голосов
/ 24 февраля 2012

Измените обратный вызов проверки, чтобы всегда возвращать true:

ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policyErrors) => true;

Или это нарушает условие "нет изменений в коде"?

...