Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Phiên bản .NET framework 3.5 SP1 và các phiên bản trước đó không cung cấp hỗ trợ cho các ứng dụng sử dụng Các phiên bản Mặc định Hệ thống Transport Layer Security (TLS). Bản cập nhật này cho phép sử dụng TLS v1.2 trong phiên .NET Framework 3.5 SP1.

Lưu  ýT nội dung này đã được phát hành trên Windows Cập nhật. Để có được nội dung, hãy quét Windows Update để biết các bản cập nhật .NET Framework nhất. Nếu hệ thống của bạn được cập nhật đầy đủ thông qua Windows Update, bạn không cần phải thực hiện thêm hành động.

Giải pháp

Tải xuống thông tin

Hotfix tương ứng với KB3154520 đã được thay thế bằng các bản cập nhật mới nhất của .NET Framework, chứa tất cả các bản sửa lỗi trước đây có trong KB3154520. Chúng tôi khuyên bạn nên cài đặt các bản cập nhật mới nhất của .NET Framework.

Chúng tôi đã thực hiện các cải tiến sau trong khu vực này:

  • Các khóa đăng ký sau đây có thể được đặt để sử dụng mặc định hệ điều hành cho SSL và TLS thay vì mặc định .NET Framework mã cứng cho một ứng dụng được quản lý chạy trên máy tính.
     

    • Đối với hệ điều hành 64-bit:[Máy HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

      [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    • Đối với hệ điều hành 32-bit:[Máy HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    Lưu ý Nếu ứng dụng đã đặt ServicePointManager.SecureProtocol trong mã hoặc thông qua cấu hình tệp thành một giá trị cụ thể hoặc sử dụng CÁC API SslStream.AuthenticateAs* để chỉ định một enum SslProtocols cụ thể, hành vi thiết đặt sổ đăng ký sẽ không xảy ra.
     

  • Ngoài ra, chúng tôi đã thêm công thức sslProtocolsExtensions mà bạn có thể sử dụng như một tùy chọn để đặt TLS v1.2, TLS v1.1, cũng như các mặc định hệ điều hành cho thuộc tính ServicePointManager.SecurityProtocol khi nhắm tới .NET framework phiên bản 2.0 SP2. (Hãy xem phần Hướng dẫn Nhà phát triển để biết thông tin về cách sử dụng các tiện ích bổ sung.)

    Lưu ý Windows Vista SP2 và Windows Server 2008 SP2 không hỗ trợ các phiên bản giao thức Transport Layer Security (TLS) mới hơn 1.0. Các ứng dụng .NET Framework 2.0 SP2 được quản lý chạy trên Windows Vista SP2 hoặc Windows Server 2008 SP2 không thể sử dụng được TLS 1.2 hoặc TLS 1.1, ngay cả khi các giao thức đó được đặt trong thuộc tính ServicePointManager.SecurityProtocol.


Để biết thêm thông tin về cách tải xuống tệp hỗ trợ của Microsoft, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Tri thức Microsoft:

119591 Cách nhận tệp hỗ trợ của Microsoft từ các dịch vụ trực tuyến mà Microsoft quét tệp này để tìm vi-rút. Microsoft đã sử dụng phần mềm phát hiện vi-rút cập nhật nhất sẵn có tại thời điểm tệp được đăng. Tệp được lưu trên máy chủ được tăng cường bảo mật giúp ngăn chặn mọi thay đổi trái phép đối với tệp.
 

Hướng dẫn dành cho Nhà phát triển

Định nghĩa của phần mở rộng mới có trong các tệp sau đây:
 

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    sử dụng System.Security.Authentication;
    lớp tĩnh công cộng SecurityProtocolTypeExtensions
    {
    const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;
    const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;
    public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;
    }
    }

  • SslProtocolsExtensions.csnamespace System.Security.Authentication
    {
    lớp tĩnh công cộng SslProtocolsExtensions
    {
    public const SslProtocols Tls12 = (SslProtocols)0x00000C00;
    const SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

Để bao gồm hỗ trợ cho TLS v1.2, hãy đưa các tệp nguồn vào dự án của bạn, rồi đặt phiên bản giao thức bằng các phương pháp sau đây:
 

  • Các ứng dụng đang sử dụng API dựa trên ServicePointManager có thể đặt giao thức bằng cách sử dụng như sau:

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • Các ứng dụng đang sử dụng quá tải SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) có thể đặt giá trị SslProtocols là SslProtocolsExtensions.Tls12.

Nếu sổ đăng ký được đề cập trong đoạn văn đầu tiên được đặt và trong ứng dụng, giá trị SslProtocols được đặt là SslProtocols.None thì hành vi mặc định hệ thống được chọn sẽ phụ thuộc vào phiên bản Hệ Điều hành Windows.

Cũng khi bạn thay đổi mã ứng dụng để kích hoạt hỗ trợ cho TLS v1.2 với .NET Framework 3.5 SP1, bạn cần đảm bảo trên máy tính không triển khai bản vá này, bạn xử lý các ngoại lệ loại trừ sau đây:
 

  1. Nếu hotfix chưa được cài đặt thì CÁC API dựa trên ServicePointManager (HTTP, FTP, SMTP) sẽ trả về "System.NotSupportedException: Giao thức bảo mật được yêu cầu không được hỗ trợ." khi ứng dụng gọi ServicePointManager.SecurityProtocol để đặt giá trị mới.

  2. Nếu hotfix chưa được cài đặt, thì các API dựa trên SslStream sẽ đưa ra khi gọi một trong hai API AuthenticateAs* đó:

    System.ArgumentException: Giá trị được chỉ định không hợp lệ trong liệt tích 'SslProtocolType'.
    Tên tham số: sslProtocolType

Lưu ý Chỉ dành cho SslStream, một kết hợp của Tls12, Tls11 với bất kỳ Tls, Ssl3, Ssl2 hiện có nào (ví dụ: Tls12 | Tls11 | Tls) sẽ âm thầm giảm cấp thành các giao thức hiện có (ví dụ: Tls) trên một hệ thống mà không có bản vá lỗi. It will connect with Tls without throwing the exception.
 

Thông tin Bổ sung

Để bật TLS v1.1 hoặc v1.2 làm mặc định của hệ điều hành, hãy làm theo các hướng dẫn tại https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.

Lưu ý TLS v1.1 và v1.2 không sẵn dùng trong Windows Vista hoặc Windows Server 2008.

Nếu bạn phải tắt các mặc định của hệ điều hành do khóa đăng ký đã đề cập ở phần trước cho ứng dụng cụ thể, bạn có thể thực hiện bằng cách thêm khóa đăng ký sau:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Đường dẫn đầy đủ của .exe cho tệp>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0

Để biết thêm thông tin về TLS v1.2, hãy xem Giới thiệu TLS v1.2.

Sau khi bạn bật khóa đăng ký SystemDefaultTlsVersions .NET, hành vi khác nhau sẽ xảy ra đối với từng phiên bản Windows, như minh họa trong bảng sau đây.
 

Windows bản mới nhất

Máy khách SSL2

Máy chủ SSL2

Máy khách SSL3

Máy chủ SSL3

Máy khách TLS 1.0

Máy chủ TLS 1.0

Máy khách TLS 1.1

Máy chủ TLS 1.1

Máy khách TLS 1.2

Máy chủ TLS 1.2

Windows Vista SP2 và Windows Server 2008 SP2

Tắt

Bật

Bật

Bật

Bật

Bật

Không có

Không có

Không có

Không có

Windows 7 SP1 và Windows Server 2008 R2 SP1

Tắt

Bật

Bật

Bật

Bật

Bật

Tắt

Tắt

Tắt

Tắt

Windows Server 2012

Tắt

Tắt

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Windows 8.1 và Windows Server 2012 R2

Tắt

Tắt

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Windows 10

Tắt

Tắt

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Windows 10 (1511)

Tắt

Tắt

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Bật

Windows 10 (1607) và Windows Server 2016

Không có

Không có

Tắt

Tắt

Bật

Bật

Bật

Bật

Bật

Bật

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×