Не проходит HTTPS запрос NET CORE 3.1
Имею: платформу net core 3.1, сервер где расположен сервис: Astra linux Запрос формирую на защищённый канал https, мое приложение крутится на http.
Получаю сертификат и параллельно задаю ssl тунель (если я все верно понимаю):
private X509Certificate2 GetSertificate (string sertPath, string sertPass, string url)
{
var uri = new Uri(url);
if (uri.Scheme.Equals("https"))
{
ServicePointManager.ServerCertificateVAlidaetonCallback = delegate {return true;};
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Ssl3;
}
return new X509Certificate2(sertPath, sertPass);
}
Создаю HttpWebRequest:
//где sertPath - путь по которому располагается сертификат (берем не из хранилища)
var clientCertificate = GetSertificate (sertPath, sertPassword, "https://test.ru");
var encoding = CodePagesEncodingProvider.Instance.GetEncoding(1251);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://test.ru");
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + Convert.ToBase64String(encoding.GetBytes(login + ":" + password)));
webRequest.ClientCertificates.Add(clientCertificate);
string requestData = encoding.GetBytes(" тут запрос по формату ")
webRequest.ContentLength = requestData.Length;
using (var sendStream = webRequest.GetRequestStream())
{
sendStream.Write(requestData, 0, requestData.Length);
}
//на строке ниже выпадает исключение: запрос пришел без клиентского сертификата
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
Вопрос: что не сделала для "рукопожатия" с той стороной, почему клиент отвечает мне что мой запрос неправильный и отсутствует клиентский сертификат.
ps: переписываю приложение с net framework на net core. Старое приложение работает, запросы видят. Но приложение требуется перенести на новую платформу