2012-05-01 3 views
44

Есть ли кто-нибудь, кто может заставить RestSharp игнорировать ошибки в сертификатах SSL? У меня есть тестовый клиент, и служба, к которой я подключаюсь, еще не имеет действительного cetificate.RestSharp - Игнорировать ошибки SSL

Когда я делаю запрос теперь я получаю ошибку:

The underlying connection was closed: Could not establish trust 
relationship for the SSL/TLS secure channel. 

Заранее спасибо

/майкл

Update:

Я закончил с использованием:

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

Ответ здесь, но я не могу превратить его в реальный с моего телефона. Http://www.west-wind.com/weblog/posts/2011/Feb/11/HttpWebRequest-and-Ignoring- SSL-Certificate-Errors –

+0

Отлично - я обновил вопрос с ответом. Но напишите «реальный» ответ, и я соглашусь с ним :-) –

+4

Обычно лучше импортировать тестовые сертификаты в тестовые клиенты доверия, а не вообще игнорировать проверку сертификатов. Во-первых, это более реалистично; во-вторых, вы избегаете оставлять этот небезопасный код в своем конечном продукте. – Bruno

ответ

51

Как предложил Джон:

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

Работает, но это не здорово, учитывая, что он устанавливает глобальное поведение. – talles

4

Существует лучшее решение, чем изменение кода. В идеале вам нужно решение, которое будет имитировать условия, которые вы увидите в процессе производства, и изменение кода не будет делать этого и может быть опасным, если вы забудете взять код перед его развертыванием.

Вам понадобится самоподписанный сертификат. Если вы используете IIS Express, у вас будет один из них, вам просто нужно его найти. Если у вас его нет, откройте Firefox или любой другой браузер, который вы хотите, и перейдите на ваш сайт. Вы должны иметь возможность просматривать информацию сертификата из строки URL, и в зависимости от вашего браузера вы должны иметь возможность экспортировать сертификат.

Затем откройте MMC.exe и добавьте оснастку «Сертификат». Импортируйте файл сертификата в хранилище доверенных корневых центров сертификации, и это все, что вам нужно.

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

+0

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

+0

Клиент My RestSharp Rest пытается получить доступ к службе REST (сторонняя/внешняя/внешняя), у которой нет действительного сертификата, когда я пытаюсь открыть его уведомление только на сайте, которое я вижу в браузере рядом с URL: «соединение небезопасно». И никаких сертификатов, доступных для экспорта из браузера, при написании. У меня нет возможности приобрести сертификат для этого сайта/службы, потому что это не мое. Я просто хочу получить от него некоторые данные json без ошибок. –

Смежные вопросы