ASP.NET и базовое соединение были закрыты: не Мог установить доверительные отношения для безопасного канала SSL/TLS

Я делаю httpwebrequest использованием общедоступных Корневых полномочий файл X509 Certificat. У меня только есть открытый ключ, не закрытый ключ. Все хорошо работает из Консольного приложения, но оно не работает из приложения asp.net. Я получаю ошибку: "Базовое соединение было закрыто: не Мог установить доверительные отношения для безопасного канала SSL/TLS".

Опция отключить Проверку не является опцией.

Вот код

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://xxxxxxx/gateway.aspx");
string post = "abcdef";
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
req.ContentLength = post.Length;

var cert = System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile(@"c:\temp\root.cer");

req.ClientCertificates.Add(cert);
StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
stOut.Write(post.ToString());
stOut.Close();

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

Вот Системные Журналы от Системы. Сеть и Система. Сетевые Сокеты.

Система. Сетевая информация: 0: [5928] SecureChannel#8106798 - цепочка сертификата не могла быть создана к доверяемым корневым полномочиям.

Система. Сетевая информация: 0: [5928] SecureChannel#8106798 - Удаленный сертификат был проверен как недопустимый пользователем.

Система. Сеть. Подробные сокеты: 0: [5928] Socket#7486778:: расположите ()

Система. Сетевая Ошибка: 0: [5928] Исключение в HttpWebRequest#51319244:: - базовое соединение было закрыто: не Мог установить доверительные отношения для безопасного канала SSL/TLS.

Система. Сетевая Ошибка: 0: [5928] Исключение в HttpWebRequest#51319244:: EndGetRequestStream - базовое соединение было закрыто: не Мог установить доверительные отношения для безопасного канала SSL/TLS.

Дальнейшая информация

Если я использую этот код (от CodeGuru)

  public static bool ValidateServerCertificate(object sender,
     X509Certificate certificate, X509Chain chain,
     SslPolicyErrors sslPolicyErrors)
  {
     if (sslPolicyErrors ==
        SslPolicyErrors.RemoteCertificateChainErrors) {
        return false;
     } else if (sslPolicyErrors ==
        SslPolicyErrors.RemoteCertificateNameMismatch) {
        System.Security.Policy.Zone z =
           System.Security.Policy.Zone.CreateFromUrl
           (((HttpWebRequest)sender).RequestUri.ToString());
        if (z.SecurityZone ==
           System.Security.SecurityZone.Intranet ||
           z.SecurityZone ==
           System.Security.SecurityZone.MyComputer) {
           return true;
        }
        return false;
     }
     return true;
  }

Я в конечном счете получаю ошибку:

Удаленная ошибка цепочки сертификата

9
задан tshepang 17 May 2014 в 08:21
поделиться

1 ответ

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

Для генерации сертификатов вы можете использовать бесплатную программу под названием SelfSSL.exe с такими командами, как:

SelfSSL.exe /T /N:CN=localhost /V:999 /Q (где "localhost" - имя сертификата)

И:

winHTTPCertCfg.exe -g -c local_machine\my -s localhost -a Administrators (для предоставления администраторам доступа к сертификату)

.
1
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: