ASP.NET Базовое соединение было закрыто:Не удалось установить доверительные отношения
-
05-07-2019 - |
Вопрос
При попытке использовать HttpWebRequest для извлечения страницы с моего сервера разработки я получаю веб-исключение:
Базовое соединение было закрыто:Не удалось установить доверительные отношения для защищенного канала SSL / TLS". Удаленный сертификат недействителен в соответствии с процедурой проверки...
URL, с которого я пытаюсь прочитать, является простым старым http://myserver.com/mypage.asp - нет SSL.Производственный сервер имеет действительный сертификат, так что это не должно быть проблемой, но наш сервер разработки этого не делает.
Помогите!
Решение 2
Нашел хороший ответ здесь:
http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/
Не подходит для производства, но решает мою проблему с сервером разработки.
Другие советы
К сожалению, ссылка, предоставленная @DavidLively, больше недоступна.Вы можете найти его, используя веб-архив: http://web.archive.org/web/20120830211353/http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/
Кроме того, из этого кода я сделал это, чтобы разрешить любой сертификат, действительный или нет (НЕ используйте это в производственном коде!):
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(AcceptAnyCertificate);
private static bool AcceptAnyCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors)
{
return true;
}
Если у вас возникает эта проблема даже после добавления сертификата в доверенные корневые центры сертификации вашего тестового сервера, убедитесь, что он добавлен для всех пользователей, а не только для текущего пользователя.
Дополнительная информация:http://brainof-dave.blogspot.com/2008/08/remote-certificate-is-invalid-according.html