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

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.
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
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.
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-quicvà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.
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.
# 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.
# 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 NetworkManagerCá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.comnhưng trang web phục vụ tạiwww.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).
# 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-renewalBậ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.
# 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 onSau 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.
# 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.pemKiể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.
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
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ệt | Thông báo lỗi | Mã lỗi |
|---|---|---|
| Chrome / Edge / Brave / Opera | Trang web này không thể cung cấp kết nối an toàn | ERR_SSL_PROTOCOL_ERROR |
| Firefox | Kết nối an toàn thất bại | SSL_ERROR_RX_MALFORMED_HANDSHAKE |
| Safari | Safari không thể thiết lập kết nối an toàn | Không hiển thị mã cụ thể |
| Internet Explorer | Không thể hiển thị trang này | Bậ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:3000thànhhttp://localhost:3000trừ 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.1Node.js — Đặt
NODE_TLS_REJECT_UNAUTHORIZED=0chỉ 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-localhostvà 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ờ
--httpstự động tạo chứng chỉ phát triển
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ĩa | Nguyên nhân phổ biến |
|---|---|---|
| ERR_SSL_PROTOCOL_ERROR | Bắt tay TLS thất bại hoàn toàn | Sai ngày/giờ, không khớp phiên bản TLS, xung đột QUIC |
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | Không có phiên bản TLS hoặc bộ mã hóa chung | Máy chủ dùng TLS 1.0/1.1 lỗi thời, mã hóa yếu |
| ERR_CERT_AUTHORITY_INVALID | Chứ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_INVALID | Chứng chỉ hết hạn hoặc chưa có hiệu lực | Chứng chỉ hết hạn, đồng hồ hệ thống sai |
| ERR_CERT_COMMON_NAME_INVALID | Tên miền chứng chỉ không khớp với URL | Chứng chỉ cho example.com, trang ở www.example.com |
| ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN | Xác thực ghim chứng chỉ thất bại | Trang 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 CheckerFrequently 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ủ.