Google Chrome chuyển hướng localhost sang https


362

Khi tôi gỡ lỗi một dự án Visual Studio bằng Chrome, trình duyệt sẽ cố gắng chuyển hướng đến https tương đương với địa chỉ web của tôi. Tôi không kích hoạt SSL trong dự án web và URL bắt đầu là URL http. Khi tôi gỡ lỗi bằng FireFox hoặc IE, tôi không gặp vấn đề này.

Tôi đã cài đặt lại Chrome để khắc phục sự cố trong một ngày. Không tải xuống bất kỳ addons nào, vấn đề lại xảy ra vào ngày hôm sau.

Điều gì đang khiến Chrome chuyển hướng localhost sang https?

Hiển thị kiểm tra mạng: URL yêu cầu: dữ liệu: văn bản / html, tiêu đề yêu cầu Tiêu đề tạm thời được hiển thị Tác nhân người dùng: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, như Gecko) Chrome / 36.0.1985.143 Safari / 537,36

Không có bản xem trước và không có dữ liệu phản hồi trong các tab đó.


Thanh tra mạng đang thể hiện điều gì?
c69

4
Kiểm tra mạng không hiển thị nhiều ở tất cả. Tôi thậm chí không thể thấy URL được yêu cầu. URL yêu cầu: dữ liệu: text / html, chromewebdata Tiêu đề yêu cầu Tiêu đề tạm thời được hiển thị Kiểm soát bộ đệm: không có bộ đệm Thực tế: không có bộ đệm Tác nhân người dùng: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, như Gecko ) Chrome / 36.0.1985.143 Safari / 537.36
Brett Mathe

CHROME 63: tiếp tục cuộn tìm câu trả lời
Northamerican

Chỉ cần cài đặt lại chrome của tôi giải quyết tất cả các vấn đề .. bây giờ .dev của tôi và không chuyển hướng sang https nữa. Tôi ước tôi đã thử nó sớm hơn .. lãng phí rất nhiều thời gian ..
Taj Khan

10
Bất cứ ai có vấn đề này gần đây, nếu bạn đang cố gắng sử dụng .devnhư doman địa phương của mình, thì đó là một vấn đề hoàn toàn mới vì vậy tôi không nghĩ bất kỳ câu trả lời nào trong số này sẽ hoạt động nữa. Kể từ Chrome 63 ... "Chrome buộc các tên miền .dev vào HTTPS thông qua HSTS được tải sẵn". Vì vậy, không có thêm chứng nhận SSL tự ký. Rõ ràng .dev là một miền thực sự. Ai biết.
Trevor

Câu trả lời:


591

Tôi tin rằng điều này là do HSTS gây ra - xem http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

Nếu bạn đã (phát triển) bất kỳ trang web localhost nào khác gửi tiêu đề HSTS ...

ví dụ. Strict-Transport-Security: max-age = 31536000; bao gồm các tên miền; tải trước

... sau đó tùy thuộc vào giá trị của độ tuổi tối đa, các yêu cầu trong tương lai tới localhost sẽ được yêu cầu được cung cấp qua HTTPS.

Để giải quyết vấn đề này, tôi đã làm như sau.

  • Trong thanh địa chỉ Chrome, nhập "chrome: // net-internals / # hsts"
  • Ở dưới cùng của một trang là hộp văn bản tên miền QUERY - xác minh rằng localhost được trình duyệt biết đến. Nếu nó nói "Không tìm thấy" thì đây không phải là câu trả lời bạn đang tìm kiếm.
  • Nếu có, XÓA tên miền localhost bằng cách sử dụng hộp văn bản ở trên
  • Trang web của bạn bây giờ sẽ hoạt động bằng cách sử dụng HTTP cũ đơn giản

Đây không phải là một giải pháp lâu dài, nhưng ít nhất sẽ khiến nó hoạt động giữa các dự án. Nếu ai biết cách loại trừ vĩnh viễn localhost khỏi danh sách HSTS, vui lòng cho tôi biết :)

CẬP NHẬT - Tháng 11 năm 2017

Chrome gần đây đã chuyển cài đặt này sang vị trí Xóa chính sách bảo mật tên miền

nhập mô tả hình ảnh ở đây

CẬP NHẬT - Tháng 12 năm 2017 Nếu bạn đang sử dụng tên miền .dev, hãy xem các câu trả lời khác bên dưới vì Chrome (và những người khác) buộc HTTPS thông qua HSTS được tải sẵn.


6
Rất bực bội. Nhưng rất vui vì đã tìm ra nguyên nhân.
Zapnologica

21
Tôi đã cố truy vấn "localhost" nhưng nó báo Không tìm thấy
Chin

2
Tôi biết đây là một bài viết cũ, nhưng có ý tưởng nào để giải quyết nếu, khi truy vấn localhost theo câu trả lời được chấp nhận, nó có trả về 'không tìm thấy' không? Đã thử tất cả mọi thứ trong tất cả các ý kiến ​​và câu trả lời ở đây.
DarkW1nter

28
Đây là tổng số rác của Chrome. Làm thế nào để họ mong đợi chúng tôi phát triển cục bộ khi họ tự ý bắt đầu buộc bạn phải HTTPS trên localhost đáng sợ của bạn? Tôi đã sử dụng tất cả mọi thứ tốt trong nhiều tháng, tôi đăng nhập vào một buổi sáng và nhận được điều này để giải quyết. Không có "bản sửa lỗi" nào làm việc cho tôi.
Alison

50
Nếu tên miền localhost của bạn .dev thì tôi tin rằng điều này không hoạt động @Alison vì kể từ phiên bản gần đây của v.63 ... "Chrome buộc các tên miền .dev vào HTTPS thông qua HSTS được tải sẵn". Như vậy, .dev về cơ bản sẽ không hoạt động nữa trừ khi bạn có chứng chỉ SSL được ký hợp lệ. Không có thêm giấy chứng nhận tự ký cho phép. Thêm chi tiết .
Trevor

308

Tôi đã gặp vấn đề tương tự trong Chrome và tôi đã thử không thành công khi sử dụng giải pháp của BigJump .

Tôi đã khắc phục vấn đề của mình bằng cách buộc làm mới cứng, như được hiển thị trong blog này (ban đầu từ câu trả lời SuperUser này ).

Đảm bảo thanh địa chỉ của bạn đang sử dụng lược đồ http và sau đó thực hiện các bước sau, có thể một vài lần:

  1. Mở bảng Công cụ dành cho nhà phát triển (CTRL + Shift + I)
  2. Nhấp và giữ biểu tượng tải lại / Nhấp chuột phải vào biểu tượng tải lại.
  3. Một menu sẽ mở ra.
  4. Chọn tùy chọn thứ 3 từ menu này ("Cache trống và tải lại cứng")

3
Bạn cũng có thể nhấp chuột phải vào biểu tượng làm mới / tải lại để vào menu Tải lại cứng
avjaarsveld 2/2/2016

3
Tôi không thể có được giải pháp này để làm việc. Vấn đề là nó tải lại cứng trên localhost: 3000 (trong trường hợp của tôi). Cố gắng thay đổi giao thức trước khi tải lại nhưng không được.
john_omalley

1
Cảm ơn bạn!!! Điều này khôi phục localhost gốc: port nếu bạn đã làm hỏng startup.cs của mình với ... var Options = new RewriteOptions (). AddRedirectToHttpsP Permanent (); app.UseRewriter (tùy chọn); }
hubert17

Làm việc cho tôi bằng cách nhấn "CTRL + SHIFT + R" để tải lại cứng.
LP. Gonçalves

Trên crom, nó là F12 chứ không phải CTRL + SHIFT + I
Champ

190

NHỮNG SỰ PHÁT TRIỂN MỚI! (nếu bạn có Chrome 63+)

Nếu tên miền localhost của bạn .devthì tôi không nghĩ rằng các câu trả lời được chấp nhận và làm việc trước đây không còn được áp dụng. Điều này là do Chrome 63 Chrome sẽ buộc các tên miền .dev vào HTTPS thông qua HSTS được tải sẵn.

Điều này có nghĩa là, .devvề cơ bản sẽ không còn hoạt động nữa trừ khi bạn có chứng chỉ SSL được ký hợp lệ - không cho phép chứng chỉ tự ký nữa! Tìm hiểu thêm tại bài viết blog này.

Vì vậy, để khắc phục vấn đề này ngay bây giờ và để tránh điều này xảy ra một lần nữa trong tương lai .testlà một tên miền được đề xuất vì nó được IETF dành riêng cho mục đích thử nghiệm / dev. Bạn cũng có thể sử dụng .localhostcho nhà phát triển địa phương.


2
Tôi đã thay đổi tất cả các tên miền .dev thành .app, vẫn cùng một vấn đề. Bất kỳ con trỏ về vấn đề có thể là gì?
Jeff

5
@Jeff thử sử dụng.test
Vitalii Zurian

18
Đây là HẾT MÌNH gây phiền nhiễu. Chắc chắn phải có một số cách để không buộc chúng ta thay đổi miền phát triển của mình, phải không?
Emanuele Ciriachi

5
thay thế .devbằng cách .testlàm việc cho tôi quá trong Chrome 63
Lekhnath

12
Những mặc định phản trực giác là khủng khiếp. Tại sao người ta phải mất thời gian gỡ lỗi thiết lập môi trường dev của họ hoặc chỉ đoán những gì đang xảy ra, chỉ để phát hiện ra rằng mọi thứ đều ổn và phía Google Chrome chuyển hướng sang HTTPS theo mặc định. Đâu là logic. Tại sao .dev và tại sao không phải là TLD khác? Hoàn toàn không trực quan.
Meglio

50

Cõng Adiyat Mubarak

Không thể làm mới khó vì nó chỉ được làm mới trên https. Theo một số bước tương tự.

1. Open chrome developer tools (ctrl + shift + i)
2. Network Tab at the top
3. Click Disable cache checkbox at the top (right under network tab for me).
4. Refresh page (while the developer tools is still open)

Tôi ở đây lần thứ hai cho giải pháp. Cảm ơn nhiều.
Čamo

1
Tôi đang sử dụng tên miền .local và điều này hoạt động khi giải pháp HSTS ở trên không có.
DiegoSalazar

Đây là điều duy nhất hiệu quả với tôi sau khi thử các giải pháp của BigJump và Adiyat Mubarak.
Hà Lan Arsovski

Vô hiệu hóa bộ nhớ cache là cần thiết cho tôi quá. Vấn đề này bắt đầu xảy ra với tôi sau khi tắt Fiddler.
CounterFlame

47

Tôi đang đối mặt với cùng một vấn đề nhưng chỉ trong Chrome Canary và tìm kiếm một giải pháp tôi đã tìm thấy bài đăng này .

một trong những phiên bản tiếp theo của Chrome sẽ buộc tất cả các tên miền kết thúc trên .dev (và .foo) phải được chuyển hướng đến HTTP thông qua tiêu đề HSTS HTTP Strict Transport Security (HSTS) được tải sẵn.

{ "name": "dev", "include_subdomains": true, "mode": "force-https" },
{ "name": "foo", "include_subdomains": true, "mode": "force-https" },

Vì vậy, thay đổi tên miền của bạn.


2
đây là vấn đề tôi đến đây để giải quyết. bây giờ tôi phải tìm ra một tld giả khác cho các trang web địa phương của tôi ...
matt lohkamp

2
Từ wiki , .localnghe có vẻ giòn, mặc dù tôi đoán nó an toàn hơn các TLD khác. Tôi cũng đang rút lại việc sử dụng .localhostcoz, có vẻ như chrome thực hiện một số chuyển hướng tự nhiên mà dường như ngăn rproxy của tôi hoạt động. .testcó vẻ an toàn nhất, mặc dù lộn xộn do xung đột không gian tên với tất cả các chuỗi được sử dụng trong TDD / .test()phương thức, v.v.
dwelle

8
Mất một ngày về điều này. Cảm ơn rất nhiều
Tonio

17
chết tiệt, vừa cập nhật lên Chrome 63 và bây giờ điều này đang ảnh hưởng đến tôi cho .dev. WTF. Tôi không quan tâm liệu đó có phải là một TLD hợp lệ hay không, nếu tôi không cần hoặc không muốn hoặc có trang web của tôi sử dụng SSL, thì đừng ép buộc tôi.
dbinott

6
Wow điều này làm tôi bực mình. Đối với một số môi trường phát triển, nó không đơn giản như chỉ thay đổi tld. Bây giờ tôi đang xem giờ làm việc để thay đổi điều này cho những gì tôi đang làm. Đó thực sự không phải là việc của họ mà tôi muốn sử dụng để phát triển.
Brett Thomas

18

Chrome 63 (ra từ tháng 12 năm 2017), sẽ buộc tất cả các tên miền kết thúc vào .dev (và .foo) được chuyển hướng đến HTTPS thông qua tiêu đề HSTS HTTP Strict Transport Security (HSTS) được tải sẵn. Bạn có thể tìm thêm thông tin về điều này ở đây.


2
^^ Ditto. Nó cũng ảnh hưởng đến .apptên miền của chúng tôi trong tuần trước. Chúng tôi đang tạm thời chuyển sang .testmặc dù tôi không nghĩ đó là một giải pháp lâu dài.
russellmania

13

từ https://galaxiNET.us/google-chrom-redirects-localhost-to-https-fix/

Không có tùy chọn sửa chữa nào làm việc cho tôi, để sửa chữa https://localhost:3000, điều này đã làm.

nhấp và giữ Reloadnút và chọn Empty Cache and Hard Reload, đây dường như chỉ là một tùy chọn trênlocalhost


Điều này không làm việc ở cuối của tôi. Còn có những giải pháp nào nữa ko?
Raju Paladiya

Chrome mới nhất được cập nhật để giải pháp này sẽ không còn hoạt động.
user2167582

1
Điều này sẽ hoạt động trên tất cả các tên miền nếu bạn mở thanh công cụ dành cho nhà phát triển
Hussam

7

Tôi cũng đã được đấu tranh với vấn đề này. Có vẻ như HSTS chỉ dành cho tên miền . Vì vậy, nếu bạn đang phát triển trong máy cục bộ, việc sử dụng địa chỉ IP sẽ dễ dàng hơn nhiều. Vì vậy, tôi đã chuyển từ localhost sang 127.0.0.1


Điều đó tốt nhưng có thể đảm bảo mỗi lần bạn nhập localhost, nó sẽ thay thế các từ localhost bằng 127.0.0.1?
Simon

Cảm ơn bạn rất nhiều
hedha

6

Tôi chưa bao giờ tìm ra gốc rễ của vấn đề tuy nhiên tôi đã có thể khắc phục vấn đề này. Tôi đã xóa thư mục bộ nhớ cache của ứng dụng Google Chrome để giải quyết vấn đề.

C: \ Người dùng [người dùng] \ AppData \ Local \ Google \ Chrome


1
Bạn đã mất tất cả lịch sử trình duyệt hoặc mật khẩu?
Zapnologica

7
Tôi tin rằng vấn đề là Chrome lưu trữ khi bạn truy cập một tên miền bằng HTTPS và sau đó nếu bạn truy cập lại cùng một tên miền, nó sẽ tự động chuyển sang HTTPS. Thật khó khăn khi làm nhà phát triển bởi vì một khi bạn truy cập bất kỳ trang web localhost nào bằng HTTPS, đột nhiên tất cả các trang web locahost đều được chuyển hướng đến HTTPS.
Dale K

1
@DaleBurrell Bạn không đúng. Điều này được gây ra bởi HSTS: en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
langpavel

6

Điều này có thể được gây ra bởi chuyển hướng https được lưu trong bộ nhớ cache và có thể được khắc phục bằng cách xóa bộ nhớ cache theo cách thủ công như trong câu trả lời của Adiyat Mubarak.

Nhưng nếu bạn đang truy cập localhost, bạn có khả năng là nhà phát triển, trong trường hợp đó, bạn sẽ tìm thấy tiện ích mở rộng chrome xóa bộ đệm, chẳng hạn như "trình diệt bộ nhớ cache cổ điển" (xem ví dụ: https://chrom.google.com.vn/webstore/search/ classic% 20cache % 20killer? Hl = en ) hữu ích trong nhiều tình huống và có thể đã được cài đặt.

Vì vậy, cách khắc phục nhanh là: Cài đặt trình diệt bộ nhớ cache (nếu bạn chưa có), bật nó lên và tải lại trang. Làm xong!


Điều này đã khắc phục sự cố
makdu

6

Một giải pháp lười biếng và nhanh chóng cho những người lười biếng như tôi (làm việc trong Chrome 67).

Chỉ cần khởi chạy một cửa sổ Chrome khác trong Chế độ ẩn , với tùy chọn "Cửa sổ ẩn danh" (CTRL + SHIFT + N). Không cần xóa bộ nhớ cache, không cần phải đi sâu vào cài đặt Chrome sâu, v.v.


1
Tôi gặp rắc rối với các đề xuất khác - có thể vì tôi cần mở một số trang web khác nhau cùng một lúc, tất cả trên cùng một tên miền nhưng trên các máy chủ khác nhau, một số máy chủ web này sử dụng https, một số khác là http. Không có gì khác hoạt động ngoài "Cửa sổ ẩn danh"!
Klaws

Điều này hoạt động, nhưng nó làm cho các yêu cầu AJAX của tôi cực kỳ chậm do các tiêu đề tạm thời.
Twigs

5

Không ai trong số này làm việc cho tôi. Nó bắt đầu xảy ra sau khi cập nhật chrome (Phiên bản 63.0.3239.84, linux) với một URL cục bộ. Luôn luôn chuyển hướng đến https bất kể điều gì. Mất một vài giờ và rất nhiều kiên nhẫn về điều này

Những gì đã làm việc sau khi tất cả chỉ là thay đổi tên miền.

Đối với những gì có giá trị, tên miền là .app. Có lẽ nó có một cái gì đó để làm? Và chỉ cần thay đổi nó thành .test và chrome đã ngừng chuyển hướng nó


5

Làm thế nào tôi giải quyết vấn đề này với chrome 79:

Chỉ cần dán url này trong tìm kiếm chrome đầu vào : // flags / # allow-insecure-localhost

Nó giúp tôi bằng cách sử dụng các tính năng thử nghiệm.


3

Thật không may, không có giải pháp nào được liệt kê ở đây giúp tôi giải quyết vấn đề này. Tôi đã khắc phục sự cố này bằng cách sử dụng http://127.0.0.1 (địa chỉ IP) thay vì http: // localhost . Một chút hack nhanh để làm việc với sự phát triển góc cạnh với trình duyệt chrome.


1

Trong trường hợp của tôi, tôi đã đặt đường dẫn dự án của mình là /Users/me/dev/project_root/và đang chạy nodeJS/ expressmáy chủ từ đó. Đổi tên đường dẫn của tôi thành /Users/me/project_root(xóadev khỏi đường dẫn đến dự án) đã giải quyết vấn đề.

Nhiều khả năng phải làm với quy định mới này:

Chrome 63 (ra từ tháng 12 năm 2017), sẽ buộc tất cả các tên miền kết thúc vào .dev (và .foo) được chuyển hướng đến HTTPS thông qua tiêu đề HSTS HTTP Strict Transport Security (HSTS) được tải sẵn.

Bạn có thể tìm thêm thông tin về điều này ở đây .

Sử dụng:

  • Google Chrome Phiên bản 70.0.3538.110 (Bản dựng chính thức) (64-bit)
  • nútJS v9.2.0

1

Một giải pháp đơn giản cho vấn đề này là chỉnh sửa /etc/hoststệp của bạn và thiết lập một bí danh cho mỗi dự án.

127.0.0.1   project1 project2 project3

Những tên không tên miền này sẽ không bao giờ gặp vấn đề với HSTS trừ khi bạn gửi phản hồi HSTS được đề cập bởi @bigjump và với lợi ích bổ sung là duy trì phiên đăng nhập của bạn nếu bạn thay đổi qua lại giữa các dự án.


0

Chuyển đến cài đặt trong Chrome và sau đó đến Cài đặt nâng cao, trong phần bảo mật và bảo mật, nhấp vào Xóa dữ liệu duyệt web và sau đó xóa tất cả dữ liệu. Tôi đã làm theo các bước này và nó đã làm việc cho tôi. Hy vọng nó sẽ giúp được ai đó.


0

Chrome 63 buộc các tên miền .dev tự động vào HTTPS thông qua HSTS được tải sẵn.
Khắc phục nhanh: chỉ cần thay đổi tên miền .dev thành .localhost.


0

Đây không phải là một giải pháp, nó chỉ là một cách giải quyết.

  1. Nhấp vào dự án phòng thu trực quan của bạn (cấp cao nhất) trong trình khám phá giải pháp và đi đến cửa sổ thuộc tính.

  2. Thay đổi SSL Kích hoạt thành đúng. Bây giờ bạn sẽ thấy một số cổng khác là 'URL SSL' trong cửa sổ thuộc tính.

  3. Bây giờ, khi bạn chạy ứng dụng của mình (hoặc xem trong trình duyệt), bạn phải thay đổi thủ công số cổng thành số cổng SSL trong thanh địa chỉ.

Bây giờ nó hoạt động tốt như một liên kết SSL


0

Mở Chrome Developer Tools-> đi đến Network-> chọn Disable Cache-> tải lại


-1

Đối với một người gặp vấn đề tương tự tôi đã giải quyết bằng cách nhấn CTRL + SHIFT + DELETE để xóa toàn bộ bộ đệm của trình duyệt. Bây giờ tôi có thể truy cập trang web localhost của mình trên giao thức HTTP.


-2

@Adiyat Mubarak câu trả lời không làm việc cho tôi. Khi tôi cố xóa bộ nhớ cache và tải lại cứng, trang vẫn được chuyển hướng đến https.

Giải pháp của tôi: Ở góc trên bên phải của thanh url (ngay bên trái biểu tượng ngôi sao yêu thích) có một biểu tượng có dấu "x" thông qua nó. Nhấp chuột phải vào đó và nó sẽ nói điều gì đó về "tập lệnh không an toàn", sau đó có một tùy chọn để tải chúng bằng mọi cách. Làm điều đó.


Bạn có biết tên của tùy chọn này là gì, hoặc nơi nào khác để tìm thấy nó? Tôi không thấy lối tắt trong thanh URL của mình.
Carolyn Conway

@CarolynConway Tôi không chắc nó được gọi là gì. Có thể nó chỉ xuất hiện cho vấn đề cụ thể của tôi.
cph2117

-2

Một tùy chọn khác là sử dụng một cái gì đó như https://github.com/rchampourlier/tunnelss

Chắc chắn rằng nó đã thêm một phụ thuộc / thiết lập khác, nhưng nó cũng cho phép thử nghiệm https trong dev, có thể tốt.

Tôi sử dụng RVM tuy nhiên để các đường hầm hoạt động tôi phải sử dụng sudo gem install tunnelsssudo tunnelss


-4

Đó là giải pháp nhanh nhất hiện nay (17-3-2018):

Đóng tất cả các tab / cửa sổ Chrome và chạy trên dòng lệnh của bạn này: (hoặc thêm nó dưới dạng một mã ngắn)

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.