Привет, когда я делаю запрос get к нашему API, я получаю сообщение об ошибке «Запрос был прерван: не удалось создать безопасный канал SSL / TLS».
Я попытался добавить ServicePointManager.SecurityProtocol =SecurityProtocolType.Tls12 в мой код, так как это был самый популярный ответ о том, как решить проблему.Он работал на моем локальном хосте, но не на нашем сервере.
Я проверил на нашем сервере, используя IISCrypto, чтобы убедиться, что TLS 1.2 включен на нашем сервере.В Windows на веб-сервере также включен «режим сильной криптографии».
string baseURI = "";
string token = "";
ServicePointManager.Expect100Continue = true;
ServicePointManager.DefaultConnectionLimit = 9999;
ServicePointManager.ServerCertificateValidationCallback = Validate;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
HttpClient newClient = new HttpClient();
var authValue = new AuthenticationHeaderValue("Bearer", token);
newClient.DefaultRequestHeaders.Authorization = authValue;
try
{
using (HttpResponseMessage post = await newClient.GetAsync(String.Format("{0}{1}", baseURI, absoluteURI)).ConfigureAwait(false))
{
try
{
post.EnsureSuccessStatusCode();
var read = await post.Content.ReadAsStringAsync().ConfigureAwait(false);
apiPost = post;
apiResponse = read.ToString();
successful = true;
}
catch (HttpRequestException hex)
{
apiResponse = post.StatusCode.ToString();
successful = false;
Email.ErrorEmail("-1", "-1", "Mattermost API Error", hex, apiResponse);
}
}
}
catch (Exception ex)
{
Email.ErrorEmail("-1", "-1", "Mattermost API Error", ex, apiResponse);
}
}
public static bool Validate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors != SslPolicyErrors.None)
{
return false;
}
return true;
}