Lỗi tự động chuyển tiếp về HTTPS khi truy cập tên miền .dev trên Chrome

Gần đây rất nhiều trường hợp gặp phải lỗi sau đây khi chạy ứng dụng web đang được phát triển ở môi trường local:

This site can’t be reached
This site on the company, organization or school intranet has the same URL as an external website.
Try contacting your system administrator.
ERR_ICANN_NAME_COLLISION

Nguyên nhân của lỗi trên là bởi vì trong phiên bản Chrome mới đây thì các tên miền kết thúc bởi .dev sẽ được chuyển tiếp về sử dụng giao thức https thay vì giao thức ít bảo mật hơn http.

Tại Sao Chrome Chuyển Tiếp Tên Miền .dev Về HTTPS

Nguyên nhân của việc làm này là bởi vì khác với các trình duyệt khác, Chrome được phát triển và sở hữu bởi Google và Google là công ty sở hữu quản lý .dev gTLD (hay generic Top Level Domain). Như các bạn biết thì điều này có nghĩa là Google có quyền quản lý tất các các tên miền kết thúc bằng .dev.

Nguyên nhân của việc chuyển tiếp này được Google cho là các tiên miền .dev nên được đối xử như một tên miền nghiêm túc như các tiên miền khác thay vì chỉ nên được các lập trình viên sử dụng nó như một tên miền phát triển ứng dụng.

Hoặc cũng có thể hiểu theo cách khác là bởi vì Google muốn đưa ra một thông điệp rằng .dev gTLD là tài sản của hãng này.

Lỗi Gây Ra Từ Việc Chuyển Tiếp Này

Từ trước đến nay một tập quán dù không nói ra nhưng hầu như tất cả các developer đều hiểu đó là tên miền .dev được sử dụng để sử dụng phát triển ứng dụng ở môi trường localhost. Việc thiết lập routing domain này về máy local thường được tiến hành thông qua việc thêm một dòng chỉ thị vào tập tin hosts trên máy tính. Một ví dụ như sau:

my-app.dev 127.0.0.1

Tuy nhiên thì các lập trình viên sử dụng giao thức http cho tên miền .dev thay vì https. Điều này một phần là bởi vì chúng ta không cần tới bảo mật SSL ở môi trường local, một phần khác cũng là do hạn chế trong kiến thức của đa số lập trình viên về việc thiết lập https nên chúng ta thường làm biếng việc thêm SSL ở môi trường local. Do đó khi việc chuyển tiếp về giao thức https này diễn ra thì đa số các ứng dụng ở local đều tèo dù khi bật Developer Tools của Chrome cũng không thấy có bất cứ lỗi nào khác để có thể debug.

Cách Khắc Phục Lỗi

Tới đây câu hỏi đặt ra đó là có cách nào để khắc phục lỗi trên mà không cần chuyển qua trình duyệt khác hay không?

Câu trả lời là có!

Hai giải pháp hiện nay đang được đề xuất để khắc phục lỗi chuyển tiếp về https của Chrome như sau:

  1. Sử dụng tên miền .localhost hoặc .test để thay cho .dev
  2. Thiết lập SSL cho Apache ở môi trường localhost

Trong đó cách sử dụng tên miền .localhost thay cho .dev đang nhận được nhiều ý kiến phản hồi tích cực từ cộng đồng lập trình. Ngoài ra thì cách này cũng chỉ tốn một chút ít thời gian thay vì phải bỏ ra tìm hiểu về cách thiết lập SSL ở môi trường localhost.

Bài Viết Liên Quan:

admin

Chào các bạn! Tôi viết blog này với một mục đích đơn giản thôi: Trong quá trình học tập và làm việc ta gặp rất nhiều kiến thức hay ho mà chắc chắn không thể nào nhớ hết, để sau này gặp lại không phải tìm hiểu lại từ đầu, vì vậy blog này như một ghi chú những gì tôi đọc thấy hay, thấy hữu ích. Chúc mọi người có thể tìm thấy gì đó hữu ích cho mình từ đây. Thank for reading :)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *