Điểm:5

Trình duyệt của tôi sẽ không hiển thị http://[sub.]example.com

lá cờ cn
Bob

Khi tôi tới http://sub.example.com trong trình duyệt của tôi, tôi nhận được một "kết nối bị từ chối" tin nhắn hoặc một "giấy chứng nhận không hợp lệ" lỗi nhưng tôi thậm chí không muốn kết nối qua https.

Theo như tôi biết:

  • Máy chủ web được cấu hình đúng cho sub.example.com
  • Cổng TCP 80 được mở trong nhóm tường lửa/bảo mật
  • HTTP đơn giản chứ không phải HTTPS được sử dụng trong URL
  • bản ghi DNS cho sub.example.com trỏ đến đúng địa chỉ IP của máy chủ web
  • máy chủ web đã được khởi động lại với cấu hình mới
  • nhật ký không hiển thị khởi động hoặc bất kỳ lỗi nào khác

Làm thế nào tôi có thể gỡ lỗi và vấn đề ở đó là gì?

Điểm:19
lá cờ cn
Bob

Điều đầu tiên cần lưu ý là các trình duyệt web hiện đại có thể không phải là công cụ tốt nhất để gỡ lỗi các sự cố như thế này. Trình duyệt thậm chí có thể là nguyên nhân của chúng vì máy chủ có thể được định cấu hình hoàn toàn chính xác và sự cố có thể là 100% từ phía máy khách.

nội dung:

  • thử nghiệm (với Xoăn và trình duyệt ẩn danh/ẩn danh)
  • cả hai bài kiểm tra đều hiển thị nội dung mong đợi
  • Xoăn có, nhưng cửa sổ trình duyệt riêng tư không hiển thị đúng nội dung
  • cả bài kiểm tra đều không hiển thị nội dung mong đợi

thử nghiệm

Cố gắng không chỉ kiểm tra với FQDN http://sub.example.com nhưng sử dụng một URL đầy đủ hơn như http://sub.example.com/some-page.html. Khi bạn biết rằng bạn đang sử dụng proxy, việc thêm các tham số bổ sung thường sẽ bỏ qua các nội dung được lưu trong bộ nhớ cache, tức là thêm và tăng một bộ đếm, chẳng hạn như http://sub.example.com/some-page.html?test=3

  • kiểm tra từ cửa sổ trình duyệt "Riêng tư/Ẩn danh".
    Điều đó làm giảm tỷ lệ rút ra kết luận không chính xác dựa trên các đối tượng được lưu trong bộ nhớ cache.

  • kiểm tra từ một dòng lệnh (trên máy chủ thử nghiệm) chẳng hạn cuộn tròn -vv http://sub.example.com/some-page.html hoặc dùng điện thoại và mô phỏng một yêu cầu web với

    telnet sub.example.com 80

    NHẬN /some-page.html HTTP/1.1
    Máy chủ: sub.example.com

Những điều cần tìm trong Xoăn đầu ra:

  • Cài đặt proxy chắc chắn là một dấu hiệu nguy hiểm và trở ngại thực sự khi gỡ lỗi sự cố máy chủ. Máy chủ proxy có thể lưu trữ (bản ghi DNS và nội dung web), hạn chế quyền truy cập của bạn và thậm chí thay thế chứng chỉ TLS.

    cuộn tròn -vv http://sub.example.com/some-page.html
    * Sử dụng biến proxy env no_proxy == 'localhost,127.0.0.1,.corp.example.net'
    * Sử dụng biến proxy env http_proxy == 'http://[user]:[pass]@proxy.corp.example.net:8080/'
    * Đang thử 10.2.0.80:8080...
               ^^^ Nguy hiểm - Máy chủ proxy
    
  • Kiểm tra từ hệ thống (kiểm tra) không dựa vào máy chủ proxy nếu bạn muốn kiểm tra đúng cấu hình của máy chủ web internet. Tôi thường không có các hệ thống thử nghiệm hỗ trợ trình duyệt chính thức, nhưng tôi thường có thể quản lý một hệ thống sẽ chạy các lệnh cuộn tròn từ một dòng lệnh.

    cuộn tròn -vv http://sub.example.com/some-page.html
    * Sắp kết nối() với cổng sub.example.com 80 (#0)
    * Đang thử 192.168.2.119...
    * Đã kết nối với sub.example.com (192.168.2.119) cổng 80 (#0)
                                    ^^^ KIỂM TRA đây có phải là địa chỉ IP chính xác không 
                                        của máy chủ web của bạn?
    > NHẬN /some-page.html HTTP/1.1
    > Tác nhân người dùng: curl/7.29.0
    > Máy chủ: sub.example.com
    > Chấp nhận: */*
    

Ở đó, bạn quan sát thấy rằng một kết nối được thiết lập thành công với đúng địa chỉ IP và cổng của máy chủ web. Các > điểm đánh dấu trước các tiêu đề yêu cầu được thực hiện bởi curl.

Các tiêu đề phản hồi của máy chủ được đánh dấu bằng một < điểm đánh dấu và sau một dòng trống, nội dung phản hồi được gửi bởi máy chủ:

< HTTP/1.1 302 Đã tìm thấy
  | ^^^ Mã phản hồi HTTP STATUS của máy chủ 
   `^^ phiên bản giao thức HTTP

< Ngày: Thứ Hai, ngày 07 tháng 2 năm 2022 13:58:11 GMT
< Máy chủ: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
< Vị trí: https://sub.example.com/some-page.html
< Độ dài nội dung: 216
< Loại nội dung: văn bản/html; bộ ký tự = iso-8859-1
<
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
...

Sau tiêu đề giao thức đầu tiên HTTP/1.1 đến Mã trạng thái HTTP máy chủ tạo ra. có một 2xx phản ứng có nghĩa là một số hình thức thành công, 3xx phản hồi là chuyển hướng (xem tại đây), 4xx5xx là lỗi.

Trong số các tiêu đề khác, máy chủ sẽ gửi Địa điểm: trong ví dụ này cho biết mục tiêu của phản hồi chuyển hướng.

cả hai bài kiểm tra đều hiển thị nội dung mong đợi

Phần kết luận: Máy chủ web được định cấu hình chính xác và sự cố liên quan đến trình duyệt.

khả năng cao nhất nguyên nhân: có thể đã có một chuyển hướng vĩnh viễn được định cấu hình trước khi cấu hình máy chủ web bị thay đổi và chuyển hướng vĩnh viễn (301) được trình duyệt lưu vào bộ đệm. Khá phổ biến là các chuyển hướng bị hỏng được lưu trong bộ nhớ cache hoặc các chuyển hướng được lưu trong bộ nhớ cache tới https và không có chứng chỉ cũng như trang web https cho sub.example.com được cấu hình chưa.

Nghị quyết 1: Xóa bộ nhớ cache của trình duyệt và trang web sẽ tải như mong đợi.
Nghị quyết 2: Nhận chứng chỉ SSL cho sub.example.com và bật TLS.

Nguyên nhân 2: Nguyên nhân gốc rễ không hoàn toàn giống nhau, nhưng nguyên nhân và kết quả thực sự tương tự với một chuyển hướng được lưu trong bộ nhớ cache tới https, một Bảo mật vận chuyển nghiêm ngặt HTTP (HSTS) chính sách được thiết lập bởi ví dụ.com tên miền cũng có thể áp dụng cho tất cả các tên miền phụ (mới) của example.com. Bất kỳ trình duyệt hiện đại hợp lý nào cũng lưu trữ và tôn trọng các chính sách HSTS và sẽ từ chối kết nối qua http đơn giản đến cổng 80 và sẽ âm thầm viết lại http://sub.example.com URL tới https://sub.example.com và cố gắng kết nối với cổng 443 bằng TLS.

Nghị quyết: lấy chứng chỉ SSL cho sub.example.com và bật TLS.
Việc xóa bộ nhớ cache của trình duyệt HSTS có thể hoạt động tạm thời nhưng điều đó chỉ hiệu quả khi bạn cũng xóa chính sách HSTS bao gồm tên miền phụ khỏi example.com, điều này không được khuyến khích.

Xoăn có, nhưng cửa sổ trình duyệt riêng tư không hiển thị đúng nội dung

Phần kết luận: Máy chủ web được định cấu hình chính xác và sự cố liên quan đến trình duyệt hoặc ứng dụng khách.

Nguyên nhân 1: Không hoàn toàn cùng một nguyên nhân gốc rễ, nhưng nguyên nhân và kết quả tương tự một cách hiệu quả với một bộ nhớ cache Bảo mật vận chuyển nghiêm ngặt HTTP (HSTS) chính sách là một tên miền trên danh sách tải trước HSTS. Tuy nhiên, khi các chính sách HSTS được lưu trong bộ nhớ cache không được áp dụng trong cửa sổ "Riêng tư/Ẩn danh", thì danh sách tải trước HSTS phải luôn được áp dụng, ngay cả trong cửa sổ riêng tư/ẩn danh.

Xem phần Hỏi & Đáp này để biết tổng quan về cách xác định xem miền hoặc TLD của bạn có nằm trong danh sách tải trước HSTS hay không:
Danh sách các miền cấp cao nhất (TLD) yêu cầu kết nối HTTPS, như .dev

Nghị quyết: lấy chứng chỉ SSL cho sub.example.com và bật TLS.

Nguyên nhân 2: mặc dù các bản ghi DNS được định cấu hình chính xác, trình phân giải máy khách, màn hình nơi trình duyệt của bạn chạy, có thể trỏ đến một địa chỉ IP khác. Kiểm tra với ví dụ nslookupđào những gì máy chủ tên khách hàng giải quyết và đừng quên rằng một tập tin máy chủ mục cho sub.example.com sẽ ghi đè DNS.

Nghị quyết: gỡ bỏ tập tin máy chủ mục nhập cho sub.example.com hoặc điều tra thêm về sự khác biệt DNS.

cả bài kiểm tra đều không hiển thị nội dung mong đợi

Phần kết luận: Vấn đề là phía máy chủ, không phải phía máy khách.

Không phản hồi

tham khảo Điều gì gây ra thông báo 'Kết nối bị từ chối'? khi có vẻ như máy chủ web hoàn toàn không phản hồi trên cổng 80.

Chuyển hướng phản hồi

Khi máy chủ web phản hồi, hãy xem kỹ phản hồi đó:

< HTTP/1.1 302 Đã tìm thấy
< Ngày: Thứ Hai, ngày 07 tháng 2 năm 2022 13:58:11 GMT
< Máy chủ: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
< Vị trí: https://sub.example.com/some-page.html
< Độ dài nội dung: 216
< Loại nội dung: văn bản/html; bộ ký tự = iso-8859-1
<
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
...

Đây là một phản hồi khá điển hình cho một máy chủ web được định cấu hình để chuyển hướng HTTP đơn giản sang HTTPS.

Các 302 tìm thấy mã trạng thái trong tiêu đề đầu tiên là dấu hiệu chuyển hướng tạm thời. Đối với một chuyển hướng vĩnh viễn đó sẽ là một 301 Di chuyển vĩnh viễn tiêu đề trạng thái http.

Các Địa điểm: tiêu đề hiển thị nơi máy khách được chuyển hướng đến.

Nguyên nhân: khi không được xác định trong cấu hình máy chủ web thì đó là rất phổ biến đối với các ứng dụng web để tạo chuyển hướng sang https hoặc một tên miền khác hoàn toàn.
Trên các máy chủ web Apache (cho phép chúng), một .htaccess tệp cũng có thể là nguồn của chuyển hướng.

Nghị quyết: điều chỉnh hoặc xóa chuyển hướng hoặc đảm bảo rằng chuyển hướng trở nên hợp lệ và có điều gì đó phản hồi trên mục tiêu của chuyển hướng.
Thường xuyên: nhận chứng chỉ SSL đó và bật TLS!

Nguyên nhân: thường thì mục tiêu của chuyển hướng bị hỏng, hãy kiểm tra lỗi đánh máy tinh vi ở đó, tôi đã thấy thiếu /'s để chuyển hướng đến sub.example.comsome-page.html và các tham số được sử dụng không chính xác chuyển hướng đến http://some-page.html, hoặc http://wwww.example.com/http://sub.example.com/some-page.html và tương tự.
Đồng thời kiểm tra các vòng lặp bằng cách yêu cầu Địa điểm: nhiều cấp độ chuyển hướng thường chỉ ra một cấu hình bị hỏng và loại bỏ vòng lặp.

Nội dung từ trang web khác

Khi bạn thấy nội dung từ một trang web khác mà bạn lưu trữ chứ không phải nội dung cho sub.example.com lưu ý rằng hầu hết các máy chủ web sẽ hiển thị nội dung từ một trang mặc định khi chúng không thể khớp tên máy chủ với một trang cụ thể.

Nghị quyết: Kiểm tra lại cấu hình của bạn để tìm lỗi đánh máy và xác nhận rằng máy chủ web đã được khởi động lại với cấu hình được cập nhật.

lá cờ cn
Tôi không hiểu nguyên nhân 2 cho "các lọn tóc hoạt động nhưng trình duyệt thì không". Làm thế nào chỉ cái sau có thể bị ảnh hưởng bởi các sự cố DNS?
lá cờ cn
Bob
Bởi vì tôi thường chạy các lệnh cli không phải từ máy tính để bàn nơi trình duyệt web của tôi chạy mà từ máy chủ thử nghiệm của tôi. Ví dụ: máy chủ thử nghiệm của tôi cũng không sử dụng máy chủ tên công ty nội bộ cũng như một phần của miền AD. Và tôi đã viết phần Hỏi & Đáp này sau khi thấy những câu hỏi tương tự được lặp đi lặp lại thường xuyên và cảm thấy mệt mỏi khi phải lặp lại những nhận xét tương tự. Vì vậy, hãy coi đây là cách gỡ lỗi 101 với những phỏng đoán có học thức về những vấn đề điển hình mà mọi người gặp phải, cách tôi kiểm tra những giả thuyết đó và cách giải quyết chúng
lá cờ cn
À, sau đó vui lòng thêm câu trả lời đó vào câu trả lời - hoặc là đề xuất chạy `curl` từ một máy khác trong phần "thử nghiệm" hoặc chỉ giải thích sự khác biệt dns do chạy trình duyệt và cuộn tròn trên các máy khác nhau gây ra. Tôi sẽ không nghĩ đến việc sử dụng máy chủ nhảy theo mặc định

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.