Tôi đang cố gắng thiết lập kết nối SSL / TLS để kiểm tra máy chủ có chứng chỉ tự ký . Giao tiếp thông qua kênh không an toàn đã hoạt động mà không có vấn đề gì.
Đây là mã mẫu của tôi, mà tôi đã viết dựa trên các giải pháp này: Cho phép chứng chỉ SSL không đáng tin cậy với HttpClient C # Bỏ qua lỗi chứng chỉ? Ứng dụng khách .NET kết nối với API Web ssl
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
var c = new HttpClient();
var r = c.GetAsync("https://10.3.0.1:8443/rest/v1").Result;
if (r.IsSuccessStatusCode)
{
Log.AddMessage(r.Content.Get<string>());
}
else
{
Log.AddMessage(string.Format("{0} ({1})", (int)r.StatusCode, r.ReasonPhrase));
}
cũng đã thử điều này:
var handler = new WebRequestHandler();
handler.ServerCertificateValidationCallback = delegate { return true; };
var c = new HttpClient(handler);
...
và điều này
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
nhưng mỗi lần tôi có một ngoại lệ:
InnerException: System.Net.Http.HttpRequestException
_HResult=-2146233088
_message=An error occurred while sending the request.
HResult=-2146233088
IsTransient=false
Message=An error occurred while sending the request.
InnerException: System.Net.WebException
_HResult=-2146233079
_message=The request was aborted: Could not create SSL/TLS secure channel.
HResult=-2146233079
IsTransient=false
Message=The request was aborted: Could not create SSL/TLS secure channel.
Source=System
StackTrace:
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
InnerException:
Tôi làm gì sai? Tại sao tôi không thể kết nối với máy chủ này (có chứng chỉ tự ký không hợp lệ)