Điểm:0

Phiên bản TLS nào là ứng dụng .NET Core 3.1 + .NET Standard 2.0 sử dụng HttpClient trên Windows Server 2016?

lá cờ sn

Tôi có

  1. một ứng dụng bao gồm ứng dụng bảng điều khiển .NET Core 3.1
  2. và thư viện .NET Standard 2.0.
  3. Ứng dụng bảng điều khiển gọi thư viện sử dụng System.Net.Http.HttpClient để gọi một https://... API.
  4. Toàn bộ ứng dụng chạy trên Datacenter Windows Server 2016 (Version 1607 Build 14393.4704)

Khi sử dụng HttpClient tôi làm điều này

Máy khách HttpClient = HttpClient mới();
client.DefaultRequestHeaders.Add("WWW-Authenticate", $"BASIC...");
phản hồi var = đang chờ client.PostAsync(apiUrl, contentString);

Phiên bản TLS nào đang được sử dụng theo mặc định?

Sẽ thật tuyệt nếu ai đó cung cấp cho tôi liên kết đến tài liệu của Microsoft.

bjoster avatar
lá cờ cn
Vì vậy, bạn đang viết phần mềm?
Điểm:-1
lá cờ sn

Không chắc chắn 100% nhưng ...

Sau khi tìm kiếm trên Google, tôi tìm thấy tài liệu này của Microsoft. Có vẻ như nếu một người rời khỏi cài đặt SSL mặc định trên HttpClient, thì HttpClient sẽ sử dụng cài đặt TLS mặc định của hệ điều hành. Và trên Windows Server 2016, đây có vẻ là TLS 1.2

Trung tâm dữ liệu Windows Server 2016 (Phiên bản 1607 Bản dựng 14393.4704)

  1. TLS được bật theo mặc định trên Windows Server 2016: https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls#support-for-tls-12 https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2-client#bkmk_winhttp

Để bật TLS 1.2 trên Windows Server 2016

  1. Cách bật TLS 1.2 trên máy chủ trang web và hệ thống trang web từ xa https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2-server
  2. Kiểm tra cài đặt đăng ký (xem liên kết đầu tiên ở trên, tôi chỉ có thể đăng 8 liên kết vì tôi có quá ít danh tiếng)

.NET Lõi 3.1

  1. Trên .NET Core 3.1 HttpClient sử dụng System.Net.Http.SocketsHttpHandler HttpClient

    1. tài liệu https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-6.0#remarks
  2. SocketsHttpHandler

    1. tài liệu https://docs.microsoft.com/en-us/dotnet/api/system.net.http.socketshttphandler?view=net-6.0
  3. SocketsHttpHandler có thuộc tính SslOptions https://docs.microsoft.com/en-us/dotnet/api/system.net.http.socketshttphandler.ssloptions?view=net-6.0#system-net-http-socketshttphandler-ssloptions

  4. SslOptions có thuộc tính EnabledSslProtocols https://docs.microsoft.com/en-us/dotnet/api/system.net.security.sslclientauthenticationoptions.enabledsslprotocols?view=net-6.0#system-net-security-sslclientauthenticationoptions-enabledsslprotocols

  5. EnabledSslProtocols không có giá trị mặc định

  6. Giá trị mặc định none cho EnabledSslProtocols có nghĩa là: Cho phép hệ điều hành chọn giao thức tốt nhất để sử dụng và chặn các giao thức không an toàn. Trừ khi ứng dụng của bạn không có lý do cụ thể, bạn nên sử dụng trường này.

    1. https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?view=net-6.0

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.