DNS RobotDNS Propagation Checker
Trang ChủDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Công cụ kiểm tra DNS thế hệ mới

Chính Sách Bảo MậtĐiều Khoản Dịch VụVề Chúng TôiBlogLiên hệ

Công Cụ DNS

Tra Cứu DNSTên Miền Sang IPTra Cứu NSTra Cứu MXTra Cứu CNAMEXem tất cả

Công Cụ Email

Kiểm Tra Bản Ghi SPFKiểm Tra DMARCKiểm Tra DKIMKiểm Tra SMTPPhân Tích Header EmailXem tất cả

Công Cụ Website

Tra Cứu WHOISKiểm Tra Tên MiềnTìm Tên Miền PhụPhát Hiện CMSPhân Tích Liên KếtXem tất cả

Công Cụ Mạng

Công Cụ PingTracerouteKiểm Tra CổngKiểm Tra Header HTTPKiểm Tra Chứng Chỉ SSLXem tất cả

Công Cụ IP

Tra Cứu IPIP Của Tôi Là GìKiểm Tra Danh Sách Đen IPIP Sang HostnameTra Cứu ASNXem tất cả

Công Cụ Tiện Ích

Quét Mã QRTạo Mã QRDịch Mã MorseChuyển Đổi Văn Bản Sang Nhị PhânTạo Chữ NhỏXem tất cả
© 2026 DNS Robot. Phát triển bởi: ❤ Shaik Brothers
Tất cả hệ thống hoạt động bình thường
Made with
Home/Blog/ERR_SSL_PROTOCOL_ERROR: Cách khắc phục (Chrome, Edge, tất cả trình duyệt)

ERR_SSL_PROTOCOL_ERROR: Cách khắc phục (Chrome, Edge, tất cả trình duyệt)

Shaik Vahid28 thg 2, 202610 min read
Hướng dẫn sửa lỗi ERR_SSL_PROTOCOL_ERROR với mô tả lỗi bắt tay SSL và các bước khắc phục cho Chrome, Edge và tất cả trình duyệt
Hướng dẫn sửa lỗi ERR_SSL_PROTOCOL_ERROR với mô tả lỗi bắt tay SSL và các bước khắc phục cho Chrome, Edge và tất cả trình duyệt

Key Takeaway

ERR_SSL_PROTOCOL_ERROR có nghĩa là trình duyệt không thể thiết lập kết nối TLS/SSL an toàn với trang web. Đối với người dùng, việc xóa trạng thái SSL, kiểm tra đồng hồ hệ thống hoặc tắt giao thức QUIC thường giải quyết được vấn đề. Đối với chủ website, cách khắc phục bao gồm gia hạn chứng chỉ hết hạn, bật TLS 1.2/1.3 và cài đặt chuỗi chứng chỉ đầy đủ.

ERR_SSL_PROTOCOL_ERROR là gì?

ERR_SSL_PROTOCOL_ERROR là lỗi trình duyệt xảy ra khi quá trình bắt tay SSL/TLS giữa trình duyệt và máy chủ web thất bại. Trình duyệt không thể thiết lập kết nối được mã hóa an toàn, nên nó chặn hoàn toàn trang web để bảo vệ bạn khỏi việc truyền dữ liệu qua kênh không an toàn.

Mỗi kết nối HTTPS đều bắt đầu bằng một quá trình bắt tay TLS — một cuộc đàm phán trong đó trình duyệt và máy chủ thống nhất về giao thức mã hóa (TLS 1.2 hoặc 1.3), trao đổi chứng chỉ và xác minh danh tính của nhau. ERR_SSL_PROTOCOL_ERROR có nghĩa là cuộc đàm phán này bị gián đoạn trước khi hoàn tất.

Lỗi này không phải là mã trạng thái HTTP phía máy chủ — nó xảy ra bên trong trình duyệt của bạn trước khi bất kỳ yêu cầu HTTP nào được gửi đi. Mã lỗi Chromium cơ bản là net::ERR_SSL_PROTOCOL_ERROR (mã lỗi -107), được định nghĩa trong mã nguồn Chromium là lỗi khi đàm phán một bộ tham số bảo mật chấp nhận được.

Note

ERR_SSL_PROTOCOL_ERROR khác với ERR_CERT_AUTHORITY_INVALID hoặc ERR_CACHE_MISS. Lỗi giao thức SSL có nghĩa là bản thân quá trình bắt tay đã thất bại — trình duyệt thậm chí chưa kịp kiểm tra chứng chỉ. Lỗi chứng chỉ xảy ra sau khi bắt tay thành công, khi việc xác thực chứng chỉ thất bại.

ERR_SSL_PROTOCOL_ERROR trông như thế nào

Chrome và các trình duyệt dựa trên Chromium hiển thị lỗi này dưới dạng cảnh báo toàn trang với thông báo "Trang web này không thể cung cấp kết nối an toàn." Bên dưới, bạn sẽ thấy mã lỗi cụ thể. Dưới đây là các biến thể phổ biến mà bạn có thể gặp.

  • ERR_SSL_PROTOCOL_ERROR — mã lỗi tiêu chuẩn trên thanh địa chỉ Chrome

  • net::ERR_SSL_PROTOCOL_ERROR — mã lỗi nội bộ đầy đủ hiển thị trong bảng điều khiển Chrome DevTools

  • Trang web này không thể cung cấp kết nối an toàn — thông báo hiển thị cho người dùng trong Chrome

  • [tên miền] đã gửi phản hồi không hợp lệ — văn bản lỗi chi tiết Chrome hiển thị bên dưới tiêu đề

  • ERR_SSL_PROTOCOL_ERROR trên tất cả trình duyệt — khi lỗi xuất hiện đồng thời trên Chrome, Edge, Brave và Opera (cho thấy vấn đề phía máy chủ hoặc toàn hệ thống, không phải lỗi riêng của trình duyệt)

Nguyên nhân gây ra ERR_SSL_PROTOCOL_ERROR?

Lỗi này có cả nguyên nhân phía máy khách (thiết bị của bạn) và phía máy chủ (trang web). Xác định vấn đề nằm ở phía nào là bước đầu tiên để khắc phục. Nếu lỗi xuất hiện trên mọi trang web, vấn đề nằm ở phía bạn. Nếu chỉ xuất hiện trên một trang web cụ thể, nguyên nhân có thể từ phía máy chủ.

  • Ngày/giờ hệ thống không chính xác — Nguyên nhân phổ biến nhất phía người dùng. Chứng chỉ SSL phụ thuộc vào thời gian — nếu đồng hồ máy tính sai dù chỉ vài phút, quá trình xác thực chứng chỉ sẽ thất bại và bắt tay TLS bị gián đoạn.

  • Chứng chỉ SSL hết hạn hoặc không hợp lệ — Chứng chỉ SSL của trang web đã hết hạn, tự ký hoặc được cấp cho tên miền khác. Bạn có thể kiểm tra bất kỳ chứng chỉ nào ngay lập tức bằng công cụ SSL Checker của chúng tôi.

  • Giao thức TLS lỗi thời — Máy chủ chỉ hỗ trợ các giao thức đã lỗi thời (SSL 3.0, TLS 1.0, TLS 1.1) mà các trình duyệt hiện đại từ chối sử dụng. Chrome, Edge và Firefox đã ngừng hỗ trợ TLS 1.0/1.1 vào năm 2020.

  • Trạng thái SSL của trình duyệt bị hỏng — Trình duyệt đã lưu vào bộ nhớ đệm dữ liệu phiên SSL cũ, tùy chọn HSTS hoặc thông tin chứng chỉ xung đột với lần kết nối hiện tại.

  • Xung đột giao thức QUIC — Giao thức QUIC thử nghiệm (HTTP/3) của Chrome đôi khi có thể gây trở ngại cho quá trình đàm phán TLS trên các máy chủ không hỗ trợ đúng cách.

  • Phần mềm diệt virus quét SSL/HTTPS — Phần mềm bảo mật chặn lưu lượng HTTPS (Avast, Kaspersky, Bitdefender, ESET) có thể phá vỡ quá trình bắt tay TLS bằng cách chèn chứng chỉ riêng vào kết nối.

  • Chuỗi chứng chỉ không đầy đủ — Máy chủ gửi chứng chỉ SSL nhưng không gửi các chứng chỉ trung gian cần thiết để xác minh chuỗi tin cậy ngược về tổ chức chứng nhận gốc.

  • VPN hoặc proxy gây nhiễu — VPN và proxy doanh nghiệp kiểm tra lưu lượng HTTPS có thể làm hỏng quá trình bắt tay TLS, đặc biệt khi chuyển đổi giữa các mạng.

  • Tiện ích mở rộng trình duyệt — Các tiện ích bảo mật, chặn quảng cáo và bảo vệ quyền riêng tư sửa đổi yêu cầu HTTPS có thể gây trở ngại cho quá trình bắt tay SSL.

  • Tường lửa chặn cổng 443 — Tường lửa mạng hoặc bộ định tuyến đang chặn cổng HTTPS tiêu chuẩn (443), ngăn quá trình bắt tay TLS hoàn tất.

Cách sửa ERR_SSL_PROTOCOL_ERROR (Dành cho người dùng)

Nếu bạn gặp lỗi này khi duyệt web, hãy bắt đầu với những cách sửa đơn giản nhất. Hầu hết các trường hợp được giải quyết bằng ba cách đầu tiên bên dưới.

Cách 1: Kiểm tra ngày và giờ hệ thống

Đồng hồ hệ thống sai là nguyên nhân phổ biến nhất gây ra ERR_SSL_PROTOCOL_ERROR. Chứng chỉ SSL có thời hạn hiệu lực (ngày Bắt đầu / Hết hạn), và nếu thời gian hệ thống nằm ngoài khoảng này, quá trình bắt tay sẽ thất bại. Thậm chí sai lệch chỉ vài phút cũng có thể gây ra sự cố với xác thực chứng chỉ nghiêm ngặt.

Hãy đảm bảo máy tính của bạn được cài đặt đồng bộ thời gian tự động.

  • Windows: Cài đặt → Thời gian & Ngôn ngữ → Ngày & Giờ → Bật "Đặt thời gian tự động" và "Đặt múi giờ tự động"

  • Mac: Cài đặt hệ thống → Chung → Ngày & Giờ → Bật "Đặt ngày và giờ tự động"

  • Linux: Chạy lệnh sudo timedatectl set-ntp true để bật đồng bộ NTP

Tip

Nếu pin CMOS hết, đồng hồ hệ thống sẽ bị đặt lại mỗi khi bạn tắt máy. Hãy thay pin (pin CR2032 hình đồng xu) trên bo mạch chủ nếu đồng hồ liên tục bị lệch.

Cách 2: Xóa trạng thái SSL (Windows)

Windows duy trì bộ nhớ đệm chứng chỉ SSL riêng, tách biệt với trình duyệt. Các mục cũ hoặc bị hỏng trong bộ nhớ đệm này có thể gây ra ERR_SSL_PROTOCOL_ERROR liên tục ngay cả sau khi đã xóa bộ nhớ đệm trình duyệt.

Để xóa trạng thái SSL trên Windows: mở Tùy chọn Internet (tìm kiếm trong menu Start hoặc gõ inetcpl.cpl trong hộp thoại Run) → nhấp vào tab Nội dung → nhấp vào Xóa trạng thái SSL → nhấp OK. Sau đó khởi động lại trình duyệt.

Note

macOS và Linux không có bộ nhớ đệm trạng thái SSL riêng — trình duyệt tự quản lý. Trên các hệ thống này, việc xóa bộ nhớ đệm trình duyệt (Cách 3) cũng xử lý luôn trạng thái SSL.

Cách 3: Xóa bộ nhớ đệm và cookie trình duyệt

Dữ liệu bộ nhớ đệm bị hỏng hoặc các mục HSTS (HTTP Strict Transport Security) cũ có thể buộc trình duyệt cố kết nối với các tham số lỗi thời, gây ra lỗi giao thức SSL.

  • Bước 1: Mở Cài đặt Chrome → Quyền riêng tư và bảo mật → Xóa dữ liệu duyệt web (hoặc nhấn Ctrl+Shift+Delete)

  • Bước 2: Chuyển sang tab Nâng cao

  • Bước 3: Đặt phạm vi thời gian là Từ trước đến nay

  • Bước 4: Chọn Tệp và hình ảnh được lưu trong bộ nhớ đệm, Cookie và dữ liệu trang web khác và Dữ liệu ứng dụng được lưu trữ

  • Bước 5: Nhấp Xóa dữ liệu và khởi động lại Chrome

Đối với một trang web cụ thể, bạn cũng có thể chỉ xóa dữ liệu của trang đó: đi đến chrome://settings/content/all → tìm tên miền → nhấp biểu tượng thùng rác.

Cách 4: Tắt giao thức QUIC

Chrome mặc định sử dụng giao thức QUIC (HTTP/3 qua UDP) để kết nối nhanh hơn. Tuy nhiên, một số máy chủ, tường lửa và thiết bị mạng không xử lý QUIC đúng cách, có thể gây ra lỗi bắt tay SSL. Tắt QUIC buộc Chrome sử dụng kết nối TLS tiêu chuẩn dựa trên TCP.

  • Bước 1: Gõ chrome://flags/#enable-quic vào thanh địa chỉ

  • Bước 2: Tìm Giao thức QUIC thử nghiệm

  • Bước 3: Đổi từ Mặc định sang Đã tắt

  • Bước 4: Nhấp Khởi chạy lại để khởi động lại Chrome

Nếu lỗi biến mất sau khi tắt QUIC, vấn đề nằm ở triển khai HTTP/3 của máy chủ hoặc mạng của bạn đang chặn cổng UDP 443. Bạn có thể để QUIC tắt mà không ảnh hưởng gì — các trang sẽ tải qua HTTPS tiêu chuẩn (HTTP/2 qua TCP).

Cách 5: Tắt tiện ích mở rộng trình duyệt

Các tiện ích chặn hoặc sửa đổi lưu lượng web — chặn quảng cáo, tiện ích VPN, bảo vệ quyền riêng tư và HTTPS Everywhere — có thể gây trở ngại cho quá trình bắt tay TLS. Một số tiện ích chèn chứng chỉ riêng hoặc sửa đổi header yêu cầu theo cách phá vỡ đàm phán SSL.

Đi đến chrome://extensions/, tắt tất cả tiện ích mở rộng và tải lại trang. Nếu lỗi biến mất, bật lại từng tiện ích một để tìm thủ phạm. Những tiện ích thường gây lỗi nhất là: uBlock Origin (hiếm), Avast Online Security, Norton Safe Web và HTTPS Everywhere.

Cách 6: Tắt quét SSL/HTTPS của phần mềm diệt virus

Nhiều phần mềm diệt virus (Avast, Kaspersky, Bitdefender, ESET, Norton) có tính năng "Quét HTTPS" hoặc "Kiểm tra SSL" chặn các kết nối được mã hóa bằng cách hoạt động như proxy trung gian (man-in-the-middle). Điều này có thể phá vỡ quá trình bắt tay TLS, đặc biệt với các trang sử dụng ghim chứng chỉ hoặc các tính năng TLS 1.3 mới hơn.

Tìm trong phần mềm diệt virus các cài đặt có tên Web Shield, Quét HTTPS, Quét SSL hoặc Quét kết nối mã hóa và tạm thời tắt chúng. Nếu lỗi được khắc phục, bạn có thể thêm tên miền bị ảnh hưởng vào danh sách ngoại lệ của phần mềm diệt virus.

Warning

Tắt quét HTTPS làm giảm khả năng bảo vệ của phần mềm diệt virus. Chỉ tắt tạm thời để kiểm tra. Nếu cách này giải quyết được vấn đề, hãy thêm tên miền cụ thể vào danh sách ngoại lệ thay vì tắt hoàn toàn tính năng.

Cách 7: Cập nhật trình duyệt

Các phiên bản trình duyệt cũ có thể không hỗ trợ giao thức TLS hoặc bộ mã hóa mà các trang web hiện đại yêu cầu. Chrome thường xuyên cập nhật yêu cầu bảo mật — ví dụ, Chrome 98 đã loại bỏ hoàn toàn hỗ trợ cho TLS 1.0 và 1.1.

Cập nhật Chrome: đi đến chrome://settings/help hoặc Menu → Trợ giúp → Giới thiệu về Google Chrome. Chrome tự động tải xuống bản cập nhật nhưng cần khởi động lại để áp dụng. Với Edge: edge://settings/help. Với Firefox: Menu → Trợ giúp → Giới thiệu về Firefox.

Cách 8: Xóa bộ nhớ đệm DNS

Các bản ghi DNS cũ có thể chỉ trình duyệt đến máy chủ sai hoặc địa chỉ IP lỗi thời không còn chứng chỉ SSL hợp lệ. Xóa bộ nhớ đệm DNS buộc hệ thống thực hiện tra cứu DNS mới.

bash
# Windows (Command Prompt as Admin)
ipconfig /flushdns

# macOS
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder

# Linux
sudo systemd-resolve --flush-caches

# Chrome internal DNS cache
# Visit chrome://net-internals/#dns → Click "Clear host cache"

Sau khi xóa, hãy xác minh tên miền phân giải đến đúng IP bằng công cụ DNS Lookup của DNS Robot. Nếu địa chỉ IP có vẻ sai, trang web có thể đã chuyển nhà cung cấp hosting và DNS chưa được phổ biến hoàn toàn.

Cách 9: Thử chế độ ẩn danh / riêng tư

Chế độ ẩn danh khởi động với trạng thái trình duyệt sạch — không có dữ liệu bộ nhớ đệm, không có cookie, không có tiện ích mở rộng (trừ khi bạn đã cho phép chúng hoạt động trong chế độ ẩn danh). Nếu trang web tải được trong chế độ ẩn danh nhưng không tải được ở chế độ bình thường, vấn đề do tiện ích mở rộng, dữ liệu bộ nhớ đệm hoặc hồ sơ trình duyệt bị hỏng gây ra.

Mở cửa sổ ẩn danh: Ctrl+Shift+N (Chrome/Edge) hoặc Ctrl+Shift+P (Firefox). Truy cập cùng trang web. Nếu trang tải được, hãy xóa bộ nhớ đệm trình duyệt (Cách 3) hoặc kiểm tra tiện ích mở rộng (Cách 5).

Cách 10: Tắt VPN hoặc Proxy

VPN và proxy HTTP nằm giữa trình duyệt và máy chủ web. Một số VPN kiểm tra lưu lượng HTTPS, chèn chứng chỉ riêng hoặc định tuyến kết nối qua máy chủ có cấu hình SSL sai. Proxy doanh nghiệp thường sử dụng chặn SSL (tương tự quét HTTPS của phần mềm diệt virus) có thể phá vỡ quá trình bắt tay TLS.

Tạm thời ngắt kết nối VPN và thử tải trang web. Nếu hoạt động bình thường khi không có VPN, vấn đề nằm ở cách VPN xử lý kết nối SSL. Thử chuyển sang máy chủ VPN khác hoặc liên hệ nhà cung cấp VPN.

Cách 11: Đặt lại cài đặt mạng (Biện pháp cuối cùng)

Nếu không có cách nào ở trên hoạt động, hãy đặt lại ngăn xếp mạng. Thao tác này xóa tất cả cấu hình mạng tùy chỉnh và đưa mọi thứ về mặc định — bao gồm cài đặt DNS, cấu hình proxy và kết nối socket.

bash
# Windows (Command Prompt as Admin)
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

# Then restart your computer

# macOS — reset DNS settings
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

# Linux — restart NetworkManager
sudo systemctl restart NetworkManager

Warning

Đặt lại cài đặt mạng sẽ xóa tất cả cấu hình tùy chỉnh — IP tĩnh, máy chủ DNS tùy chỉnh, cài đặt proxy và cấu hình VPN. Hãy ghi lại cài đặt hiện tại trước khi chạy các lệnh này.

Cách sửa ERR_SSL_PROTOCOL_ERROR (Dành cho chủ website)

Nếu nhiều người dùng báo cáo ERR_SSL_PROTOCOL_ERROR trên website của bạn, vấn đề nằm ở phía máy chủ. Các nguyên nhân phía máy chủ phổ biến nhất là chứng chỉ hết hạn, thiếu chứng chỉ trung gian và cấu hình TLS lỗi thời.

Kiểm tra chứng chỉ SSL

Bước đầu tiên là xác minh chứng chỉ SSL hợp lệ, được cài đặt đúng cách và chưa hết hạn. Sử dụng công cụ SSL Checker của DNS Robot để kiểm tra ngay trạng thái chứng chỉ, ngày hết hạn, tổ chức phát hành và chuỗi chứng chỉ.

Các vấn đề chứng chỉ thường gặp gây ra ERR_SSL_PROTOCOL_ERROR:

  • Chứng chỉ hết hạn — Chứng chỉ Let's Encrypt hết hạn sau mỗi 90 ngày. Nếu tự động gia hạn thất bại (cron certbot không chạy, thử thách DNS bị lỗi), chứng chỉ âm thầm hết hạn.

  • Sai tên miền — Chứng chỉ được cấp cho example.com nhưng trang web phục vụ tại www.example.com (hoặc ngược lại). Chứng chỉ phải khớp chính xác tên miền hoặc bao gồm wildcard (*.example.com).

  • Chứng chỉ tự ký — Chứng chỉ phát triển không được trình duyệt tin cậy trong môi trường sản xuất.

  • Chứng chỉ bị thu hồi — Tổ chức chứng nhận đã thu hồi chứng chỉ (do khóa bị xâm phạm, cấp phát sai hoặc thay đổi quyền sở hữu tên miền).

bash
# Check certificate from command line
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates -subject -issuer

# Check certificate chain completeness
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep -E "(depth|verify)"

# Renew Let's Encrypt certificate
sudo certbot renew --force-renewal

Bật TLS 1.2 và TLS 1.3

Tất cả trình duyệt hiện đại yêu cầu ít nhất TLS 1.2. Nếu máy chủ chỉ hỗ trợ TLS 1.0 hoặc 1.1, trình duyệt sẽ từ chối kết nối và hiển thị ERR_SSL_PROTOCOL_ERROR. TLS 1.3 là tiêu chuẩn mới nhất và nhanh hơn đáng kể so với TLS 1.2 — hãy bật cả hai để có khả năng tương thích và hiệu suất tối đa.

bash
# Nginx — ssl_protocols in nginx.conf or site config
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;

# Apache — in httpd.conf or ssl.conf
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder on

Sau khi cập nhật cấu hình TLS, khởi động lại máy chủ web (sudo systemctl restart nginx hoặc sudo systemctl restart apache2) và kiểm tra bằng công cụ SSL Checker của DNS Robot để xác nhận các giao thức đang hoạt động.

Cài đặt chuỗi chứng chỉ đầy đủ

Chuỗi chứng chỉ không đầy đủ là nguyên nhân phổ biến nhưng khó chẩn đoán gây ra ERR_SSL_PROTOCOL_ERROR. Máy chủ phải gửi không chỉ chứng chỉ SSL mà còn các chứng chỉ trung gian kết nối chứng chỉ với tổ chức chứng nhận gốc đáng tin cậy. Thiếu chúng, một số trình duyệt và thiết bị không thể xác minh chứng chỉ.

Hầu hết các tổ chức chứng nhận cung cấp tệp "CA bundle" hoặc "full chain". Với Let's Encrypt, hãy dùng fullchain.pem (không phải chỉ cert.pem). Với các CA khác, tải chứng chỉ trung gian từ tài liệu của họ và nối với chứng chỉ của bạn.

bash
# Nginx — use fullchain, not just cert
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

# Apache
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

Kiểm tra cấu hình HSTS

HSTS (HTTP Strict Transport Security) yêu cầu trình duyệt luôn luôn sử dụng HTTPS cho tên miền của bạn. Nếu chính sách HSTS có max-age dài và chứng chỉ SSL sau đó bị lỗi, trình duyệt sẽ từ chối kết nối — không thể quay lại HTTP, và HTTPS bị lỗi gây ra ERR_SSL_PROTOCOL_ERROR.

Kiểm tra header HSTS bằng công cụ HTTP Headers của DNS Robot. Nếu bạn đặt max-age rất dài (như 2 năm) và chứng chỉ hết hạn, người dùng đã truy cập trang trước đó sẽ bị khóa vào HTTPS mà không có lối thoát. Để khắc phục, trước tiên hãy sửa chứng chỉ SSL, sau đó trình duyệt sẽ kết nối bình thường trở lại.

Tip

Khi triển khai HSTS lần đầu, hãy bắt đầu với max-age ngắn (như max-age=300 — 5 phút) để có thể khắc phục sự cố nhanh chóng. Chỉ tăng lên max-age=31536000 (1 năm) sau khi đã xác nhận mọi thứ hoạt động bình thường. Đọc thêm trong hướng dẫn về chuỗi chứng chỉ SSL của chúng tôi.

Xác minh cấu hình máy chủ

Máy chủ web cấu hình sai có thể gây ra ERR_SSL_PROTOCOL_ERROR ngay cả khi chứng chỉ hợp lệ. Các lỗi cấu hình máy chủ phổ biến bao gồm:

  • Sai cổng — SSL/TLS nên chạy trên cổng 443. Nếu máy chủ lắng nghe trên cổng khác, trình duyệt có thể không thực hiện được bắt tay.

  • HTTP/HTTPS lẫn lộn — Phục vụ một số tài nguyên qua HTTP trên trang HTTPS gây cảnh báo nội dung hỗn hợp và có thể phá vỡ quá trình bắt tay cho tài nguyên phụ.

  • SNI (Server Name Indication) chưa cấu hình — Nếu nhiều tên miền dùng chung một địa chỉ IP, máy chủ phải hỗ trợ SNI để phục vụ chứng chỉ đúng cho mỗi tên miền.

  • Bộ mã hóa không tương thích — Máy chủ chỉ hỗ trợ các bộ mã hóa mà trình duyệt không chấp nhận. Sử dụng mã hóa mạnh hiện đại như AES-GCM và ChaCha20.

Sử dụng công cụ HTTP Headers Checker của DNS Robot để kiểm tra các header phản hồi của máy chủ và xác minh cấu hình SSL đang gửi đúng header.

ERR_SSL_PROTOCOL_ERROR trên Android

Người dùng Android gặp ERR_SSL_PROTOCOL_ERROR cả trong Chrome cho Android lẫn các ứng dụng dựa trên WebView. Cách khắc phục hơi khác so với máy tính để bàn vì Android quản lý chứng chỉ và cài đặt mạng theo cách riêng.

  • Kiểm tra ngày và giờ — Cài đặt → Hệ thống → Ngày & giờ → Bật "Ngày & giờ tự động" và "Múi giờ tự động"

  • Xóa dữ liệu Chrome — Cài đặt → Ứng dụng → Chrome → Bộ nhớ → Xóa bộ nhớ đệm (nếu không hiệu quả thì Xóa dữ liệu)

  • Cập nhật Chrome — Mở Google Play Store → Ứng dụng của tôi → Cập nhật Chrome lên phiên bản mới nhất

  • Xóa thông tin đăng nhập mạng — Cài đặt → Bảo mật → Xóa thông tin đăng nhập (thao tác này xóa tất cả chứng chỉ do người dùng cài đặt)

  • Đặt lại cài đặt mạng — Cài đặt → Hệ thống → Tùy chọn đặt lại → Đặt lại Wi-Fi, di động & Bluetooth

  • Đối với ứng dụng WebView — Nhà phát triển nên đảm bảo đặt android:usesCleartextTraffic="false" và cấu hình bảo mật mạng tin cậy đúng tổ chức chứng nhận

Note

Các thiết bị Android cũ (Android 7.0 trở xuống) mặc định không tin cậy chứng chỉ ISRG Root X1 của Let's Encrypt. Website sử dụng chứng chỉ Let's Encrypt có thể hiển thị ERR_SSL_PROTOCOL_ERROR trên các thiết bị cũ này. Giải pháp tạm thời là sử dụng chuỗi chứng chỉ ký chéo.

ERR_SSL_PROTOCOL_ERROR trên các trình duyệt khác

ERR_SSL_PROTOCOL_ERROR là mã lỗi riêng của Chromium. Các trình duyệt khác hiển thị thông báo lỗi khác nhau cho cùng một lỗi bắt tay SSL.

Trình duyệtThông báo lỗiMã lỗi
Chrome / Edge / Brave / OperaTrang web này không thể cung cấp kết nối an toànERR_SSL_PROTOCOL_ERROR
FirefoxKết nối an toàn thất bạiSSL_ERROR_RX_MALFORMED_HANDSHAKE
SafariSafari không thể thiết lập kết nối an toànKhông hiển thị mã cụ thể
Internet ExplorerKhông thể hiển thị trang nàyBật TLS 1.0, 1.1, 1.2 trong Tùy chọn Internet

Nếu lỗi xuất hiện trên tất cả trình duyệt cùng lúc, vấn đề hoặc là toàn hệ thống (sai ngày/giờ, phần mềm diệt virus, mạng) hoặc phía máy chủ (chứng chỉ hết hạn, cấu hình TLS sai). Nếu chỉ xuất hiện trên một trình duyệt, vấn đề thuộc về trình duyệt đó — thử xóa bộ nhớ đệm và trạng thái SSL của trình duyệt đó.

ERR_SSL_PROTOCOL_ERROR trên Localhost (Lập trình viên)

Lập trình viên thường gặp thông báo localhost sent an invalid response. ERR_SSL_PROTOCOL_ERROR khi chạy máy chủ phát triển cục bộ. Điều này xảy ra vì trình duyệt yêu cầu chứng chỉ SSL hợp lệ cho kết nối HTTPS, nhưng localhost sử dụng chứng chỉ tự ký hoặc không có chứng chỉ.

  • Dùng HTTP cho phát triển cục bộ — Đổi https://localhost:3000 thành http://localhost:3000 trừ khi bạn cần HTTPS cụ thể

  • Tạo chứng chỉ cục bộ — Dùng mkcert để tạo chứng chỉ SSL đáng tin cậy cục bộ: mkcert -install && mkcert localhost 127.0.0.1

  • Node.js — Đặt NODE_TLS_REJECT_UNAUTHORIZED=0 chỉ cho môi trường phát triển (không bao giờ dùng trong sản xuất)

  • Cờ Chrome — Gõ chrome://flags/#allow-insecure-localhost và bật "Cho phép chứng chỉ không hợp lệ cho tài nguyên tải từ localhost"

  • Next.js / Vite / Webpack — Các framework này hỗ trợ cờ --https tự động tạo chứng chỉ phát triển

Warning

Không bao giờ dùng NODE_TLS_REJECT_UNAUTHORIZED=0 trong môi trường sản xuất. Nó vô hiệu hóa toàn bộ xác thực chứng chỉ, khiến ứng dụng dễ bị tấn công man-in-the-middle.

Các mã lỗi SSL/TLS liên quan

Chrome có nhiều mã lỗi liên quan đến SSL. Mỗi mã cho biết các vấn đề khác nhau về bắt tay TLS hoặc chứng chỉ.

Mã lỗiÝ nghĩaNguyên nhân phổ biến
ERR_SSL_PROTOCOL_ERRORBắt tay TLS thất bại hoàn toànSai ngày/giờ, không khớp phiên bản TLS, xung đột QUIC
ERR_SSL_VERSION_OR_CIPHER_MISMATCHKhông có phiên bản TLS hoặc bộ mã hóa chungMáy chủ dùng TLS 1.0/1.1 lỗi thời, mã hóa yếu
ERR_CERT_AUTHORITY_INVALIDChứng chỉ không được CA đáng tin cậy kýChứng chỉ tự ký, thiếu chứng chỉ trung gian, root hết hạn
ERR_CERT_DATE_INVALIDChứng chỉ hết hạn hoặc chưa có hiệu lựcChứng chỉ hết hạn, đồng hồ hệ thống sai
ERR_CERT_COMMON_NAME_INVALIDTên miền chứng chỉ không khớp với URLChứng chỉ cho example.com, trang ở www.example.com
ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAINXác thực ghim chứng chỉ thất bạiTrang dùng HPKP và chứng chỉ đã thay đổi

Với tất cả lỗi SSL, bạn có thể chẩn đoán nhanh vấn đề bằng công cụ SSL Checker của DNS Robot — hiển thị trạng thái chứng chỉ, tính đầy đủ của chuỗi, phiên bản TLS được hỗ trợ và ngày hết hạn trong một lần quét.

Kiểm tra chứng chỉ SSL ngay bây giờ

Sử dụng công cụ SSL Checker miễn phí của DNS Robot để xác minh ngay trạng thái chứng chỉ, ngày hết hạn, chuỗi chứng chỉ và hỗ trợ giao thức TLS. Chẩn đoán ERR_SSL_PROTOCOL_ERROR trong vài giây.

Try SSL Checker

Frequently Asked Questions

ERR_SSL_PROTOCOL_ERROR có nghĩa là trình duyệt không thể thiết lập kết nối TLS/SSL an toàn với trang web. Quá trình bắt tay TLS — nơi trình duyệt và máy chủ đàm phán mã hóa — đã bị gián đoạn trước khi hoàn tất. Đây là lỗi phía máy khách, không phải mã trạng thái HTTP của máy chủ.

Related Tools

Ssl CheckerHttp HeadersDns LookupPort Checker

Related Articles

Connection Not Private FixWhat Is Ssl Certificate ChainErr Cache Miss FixDns Probe Nxdomain Fix504 Gateway Timeout

Table of Contents

  • ERR_SSL_PROTOCOL_ERROR là gì?
  • ERR_SSL_PROTOCOL_ERROR trông như thế nào
  • Nguyên nhân gây ra ERR_SSL_PROTOCOL_ERROR?
  • Cách sửa ERR_SSL_PROTOCOL_ERROR (Dành cho người dùng)
  • Cách 1: Kiểm tra ngày và giờ hệ thống
  • Cách 2: Xóa trạng thái SSL (Windows)
  • Cách 3: Xóa bộ nhớ đệm và cookie trình duyệt
  • Cách 4: Tắt giao thức QUIC
  • Cách 5: Tắt tiện ích mở rộng trình duyệt
  • Cách 6: Tắt quét SSL/HTTPS của phần mềm diệt virus
  • Cách 7: Cập nhật trình duyệt
  • Cách 8: Xóa bộ nhớ đệm DNS
  • Cách 9: Thử chế độ ẩn danh / riêng tư
  • Cách 10: Tắt VPN hoặc Proxy
  • Cách 11: Đặt lại cài đặt mạng (Biện pháp cuối cùng)
  • Cách sửa ERR_SSL_PROTOCOL_ERROR (Dành cho chủ website)
  • Kiểm tra chứng chỉ SSL
  • Bật TLS 1.2 và TLS 1.3
  • Cài đặt chuỗi chứng chỉ đầy đủ
  • Kiểm tra cấu hình HSTS
  • Xác minh cấu hình máy chủ
  • ERR_SSL_PROTOCOL_ERROR trên Android
  • ERR_SSL_PROTOCOL_ERROR trên các trình duyệt khác
  • ERR_SSL_PROTOCOL_ERROR trên Localhost (Lập trình viên)
  • Các mã lỗi SSL/TLS liên quan
  • FAQ