У меня есть фрагмент кода .NET, который выдает ошибку при вызове HTTPWebRequest.GetRequestStream
. Вот сообщение об ошибке:
Базовое соединение было закрыто:
Не удалось установить доверительные отношения
для безопасного канала SSL / TLS.
Я прочитал несколько вещей, которые предполагают, что мне может понадобиться сертификат на машине, на которой выполняется код, но я считаю, что у меня есть все необходимые сертификаты ...
Вот как я проверил наличие необходимых сертификатов:
- попал в веб-сервис с помощью Firefox.
- Посмотрите на используемые сертификаты
ударить этот веб-сервис, посмотрев
в информации о безопасности через
браузер
- экспорт сертификатов
- импортировать сертификаты через
Свойства обозревателя в панели управления
Это должно быть достаточно? Я все еще получаю сообщение об ошибке.
Код:
var request = (HttpWebRequest)HttpWebRequest.Create(requestUrl); //my url
request.Method = StringUtilities.ConvertToString(httpMethod); // Set the http method GET, POST, etc.
if (postData != null)
{
request.ContentLength = postData.Length;
request.ContentType = contentType;
using (var dataStream = request.GetRequestStream())
{
dataStream.Write(postData, 0, postData.Length);
}
}
UPDATE:
Добавление скриншотов моих сертификатов. Дайте мне знать, если что-то выглядит не так:
Во-первых, у нас есть сертификат, который использует Firefox:
Далее, у нас есть то, что находится в моих доверенных корневых сертификатах согласно MMC:
Наконец, у нас есть то, что находится в моих промежуточных сертификатах в соответствии с MMC:
Это выглядит правильно?