Để giao tiếp giữa client and server một cách an toàn, đồng thời trao đổi và xác thực các chứng chỉ kỹ thuật số của nhau. Client and server thiết lập nên các thuật toán mã hóa và khóa bí mật. Quá trình này gọi là SSL Handshake.
Xem thêm về SSL Handshake: https://bkhost.vn/blog/ssl-tls-handshake/
Trong bài viết dưới đây của BKHOST đề cập đến lỗi “SSL Handshake Failed”.
SSL Handshake Failed là gì?
“SSL Handshake Failed” là thông báo lỗi khi quy trình các bước SSL Handshake không diễn ra suôn sẻ. Các trường hợp gây nên lỗi này bao gồm:
- Client đang sử dụng sai ngày hoặc giờ.
- Client là một trình duyệt và cấu hình cụ thể của nó đang gây ra lỗi.
- Bên thứ ba ở phía client đang chặn kết nối.
- Client và server không hỗ trợ cùng một phiên bản SSL.
- Client và server đang sử dụng các Bộ mật mã khác nhau.
- Chứng chỉ của client hoặc sever không hợp lệ.
Tùy thuộc vào client và server mà thông báo lỗi xuất hiện khác nhau. Ví dụ, trong GitHub sẽ thông báo như sau:
Nếu đang sử dụng Cloudflare, SSL Handshake Failed sẽ thông báo lỗi 525 như sau:
Các giải pháp sửa lỗi “SSL Handshake Failed”
Sửa ngày và giờ trên client
Do thời gian là yếu tố cần thiết khi nói đến chứng chỉ SSL. Nên bạn cần kiểm tra ngày và giờ trên hệ thống của mình. Nếu ngày và giờ hệ thống trên máy tính hoặc thiết bị của bạn sai sẽ dẫn đến lỗi “ SSL Handshake Failed”.
Thử một trình duyệt khác
Do cài đặt, plugin trình duyệt hoặc một vấn đề nào đó trên trình duyệt của bạn mà gây ra lỗi ““ SSL Handshake Failed”. Để biết được vấn đề trên có phải do trình duyệt của bạn gây ra hay không, bạn hãy chuyển sang dùng một trình duyệt khác.
Nếu vấn đề nằm ở trình duyệt bạn có thể lần tìm lỗi bằng cách cài đặt trình duyệt về mặc định và tắt tất cả các plugin. Sau đó cấu hình lại và bật từng plugin để kiểm tra.
Thêm trang web vào danh sách cho phép
Lỗi “SSL Handshake Failed” cũng có thể do tường lửa của bạn gây ra. bằng cách chặn yêu cầu kiểm tra của bạn. Với nguyên nhân, bạn có thể tạm thời vô hiệu hóa tường lửa của mình tuy vậy việc làm này cũng khiến bạn dễ bị tấn công hơn.
Vì vậy thay vì chặn hoàn toàn tường lửa bạn hãy thử thêm trang web vào danh sách cho phép của bạn. Dưới đây là quy trình dành cho Google Chrome:
- Trên trang chủ bảng điều khiển dành cho quản trị viên của bạn, đi tới Devices > Chrome.
- Nhấp vào Settings > Users & browsers.
- Để đơn vị tổ chức hàng đầu được chọn (nó được chọn theo mặc định). Điều này sẽ áp dụng cài đặt cho tất cả người dùng và trình duyệt đã đăng ký.
- Cuộn đến Blocked URL exceptions và nhập trang web bạn đang cố truy cập trong các trường hợp ngoại lệ URL bị chặn. Nhấp vào Save.
Cập nhật trình duyệt để sử dụng giao thức SSL mới nhất
Lỗi “SSL Handshake Failed” cũng có thể do thiết bị của client và server không hỗ trợ cùng một phiên bản SSL, vì vậy giao thức không khớp. Ví dụ: xuất hiện lỗi “SSL Handshake Failed” do trình duyệt của bạn chỉ hỗ trợ TLS 1.1 và máy chủ của bạn chỉ hỗ trợ TLS 1.2 hoặc 1.3 (phiên bản mới nhất).
Với nguyên nhân này bạn cần cập nhật trình duyệt của mình.
Dưới đây là cách dễ nhất để kiểm tra trình duyệt và server của bạn đang sử dụng cùng một giao thức hay không:
- Truy cập SSL Labs ( https://www.ssllabs.com/).
- Chọn projects.
- Click vào SSL Client Test để kiểm tra máy khách SSL.
- Trong Hỗ trợ giao thức, nó sẽ cho bạn biết liệu trình duyệt của bạn có hỗ trợ các phiên bản TLS mới nhất hay không.
Kiểm tra hỗ trợ của trình duyệt và máy chủ cho Cipher Suites
Lỗi “SSL Handshake Failed” không thể thiết lập kết nối an toàn do client và server đang sử dụng các Bộ mật mã khác nhau.
Bạn có thể so sánh Cipher Suites hỗ trợ trình duyệt của bạn với server của trang web mà bạn đang cố truy cập hỗ trợ bằng cách truy cập lại SSL Labs.
- Đầu tiên, điều hướng đến Projects.
- Click vào SSL Client Test.
- Kéo xuống Protocol Features, bạn sẽ tìm thấy những Bộ mật mã nào mà trình duyệt của bạn hỗ trợ, theo thứ tự ưu tiên.
- Bây giờ, mở SSL Labs trong một tab khác và điều hướng Projects.
- Click vào SSL Server Test.
- Nhập tên miền bạn đang cố gắng truy cập dẫn đến lỗi SSL Handshake Failed.
- Kéo xuống Configuration, bạn sẽ tìm thấy những Bộ mật mã nào mà máy chủ hỗ trợ, theo thứ tự ưu tiên.
Xác minh chứng chỉ SSL của bạn là chính xác và hợp lệ
Lỗi “SSL Handshake Failed” cũng có thể do một vấn đề nào đó trên chứng chỉ SSL. Vấn đề này có thể trực tiếp gây ra lỗi Lỗi “SSL Handshake Failed” hoặc gián tiếp thông qua lỗi khác. Ví dụ: Xuất hiện thông báo lỗi tương tự như thế này:
Bạn phải cài đặt SSL đúng cách và gia hạn khi cần. Vì nếu chứng chỉ SSL có tên server không chính xác hoặc đã quá ngày hết hạn, thì quá trình bắt tay có thể sẽ thất bại.
Để kiểm tra xem cấu hình SSL của bạn đã được cài đặt, hợp lệ và đáng tin cậy hay chưa. Bạn có thể sử dụng một công cụ trực tuyến như SSL Server Test hoặc SSL Shopper.
Tổng kết về lỗi SSL Handshake Failed
Do SSL Handshake là một bước cần thiết để giữ an toàn cho dữ liệu được truyền qua internet, Vậy nên điều quan trọng là người dùng phải hiểu lỗi SSL Handshake Failed có nghĩa là gì và cách khắc phục nó. Bài viết trên chúng tôi hy vọng bạn sẽ có thể giải quyết sự cố và thiết lập kết nối an toàn giữa thiết bị của mình và server mà bạn đang cố kết nối.
Nếu còn gặp bất cứ vướng mắc gì, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.