Trình duyệt gõ http:// đầu tiên và truy cập https:// sau khi chuyển hướng đã gửi một yêu cầu rõ ràng và VPN không thay đổi điều đó. Đường hầm bảo vệ chặng từ máy khách đến nút thoát; nó không mã hóa bất cứ thứ gì phía trên lớp vận chuyển, vì vậy người quan sát giữa lối ra và điểm gốc vẫn nhìn thấy bước nhảy văn bản gốc. Việc đặt HTTPS làm yêu cầu đầu tiên là một thay đổi phía máy khách gồm ba phần: địa chỉ HTTPS thực, chế độ nâng cấp của trình duyệt và chính sách riêng của trang web. Các bước bên dưới là thứ tự tôi sử dụng, mỗi bước có dấu kiểm cho biết liệu nó có được thực hiện hay không.

Bước 1: xác nhận yêu cầu đầu tiên thực sự là gì

Trước khi thay đổi bất kỳ điều gì, hãy xem nội dung trình duyệt gửi. Mở bảng điều khiển mạng có trang được tải lại từ bộ nhớ đệm nguội và đọc hàng đầu tiên: nếu lược đồ là http và trạng thái là 301 hoặc 308 thì mọi thứ sau hàng đó là yêu cầu thứ hai. curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' http://example.com tái tạo trình tự tương tự bên ngoài trình duyệt và in URL mà bạn đã kết thúc.

Có thể xảy ra hai kết quả và chúng cần có cách khắc phục khác nhau. Nếu trang web phân phối HTTPS trên cùng một máy chủ, cách khắc phục là ngừng xuất bản biểu mẫu HTTP: cập nhật dấu trang, liên kết wiki, lối tắt trên màn hình và mẫu email mà mọi người nhấp vào. Nếu trang web hoàn toàn không phân phát HTTPS thì sẽ không có cài đặt trình duyệt nào tạo ra nó và câu trả lời trung thực là đích đến mới có vấn đề. Không ghi ngoại lệ vào trường hợp thứ hai, vì ngoại lệ chứng chỉ trên trang tài khoản sẽ chuyển vấn đề truyền tải thành vấn đề về thông tin xác thực. Hãy viết ra trường hợp bạn đang gặp phải trước khi chạm vào một cài đặt.

Bước 2: bật chế độ chỉ HTTPS của trình duyệt

Chế độ nâng cấp là phần thứ hai và các chế độ không thể thay thế cho nhau. Kiểm tra xem phần mềm của bạn làm gì trước khi kích hoạt: nâng cấp âm thầm, nâng cấp có cảnh báo hoặc từ chối tải.

Trong Firefox, các điều khiển nằm phía sau about:config và trong trang cài đặt quyền riêng tư, với dom.security.https_only_mode là nút chuyển và các trường hợp ngoại lệ trên mỗi trang web được quản lý từ menu ổ khóa. Trong Chrome và Edge, ý tưởng tương tự nằm trong Cài đặt, Quyền riêng tư và bảo mật, Bảo mật, được gắn nhãn Luôn sử dụng kết nối an toàn. Dù nhãn nào, hãy xác minh hành vi đối với máy chủ chỉ trả lời trên cổng 80, vì chế độ nâng cấp rồi âm thầm quay trở lại không phải là biện pháp bảo vệ mà bạn cho rằng mình đã bật. Tài liệu chỉ dành cho HTTPS của Firefox nêu rõ hành vi nâng cấp, cảnh báo và ngoại lệ cho trình duyệt đó.

Bước 3: sửa tài nguyên, không chỉ thanh địa chỉ

Khi nâng cấp không thành công, hãy đọc lỗi chính xác thay vì thanh địa chỉ. Máy chủ không có trình nghe HTTPS, tên máy chủ không khớp với chứng chỉ và chuỗi hết hạn sẽ tạo ra các thông báo khác nhau và thuộc về các chủ sở hữu khác nhau. Chỉ có điều đầu tiên là khoảng trống phía máy chủ; cái thứ hai thường là một dấu trang không bao giờ được cập nhật; thứ ba là vấn đề gia hạn mà kết nối VPN không liên quan.

Không thêm ngoại lệ chứng chỉ vào trang tài khoản vì VPN đang bật. Ngoại lệ này sẽ vô hiệu hóa hoạt động kiểm tra có thể phát hiện chính xác hoạt động chặn mà VPN có ý định ngăn chặn.

Phần thứ ba nằm bên trong trang và là phần mà mọi người bỏ lỡ. Một trang tải qua HTTPS vẫn có thể lấy hình ảnh, phông chữ hoặc tập lệnh từ URL http và trình duyệt sẽ chặn chúng hoặc hạ cấp chỉ báo bảo mật cho toàn bộ trang. Kiểm tra các yêu cầu không thành công trong bảng điều khiển mạng và sửa các tham chiếu tài nguyên ở chủ sở hữu của chúng thay vì cho rằng thanh địa chỉ mô tả mọi yêu cầu. Trên trang web bạn chạy, điều đó có nghĩa là sửa các URL được lưu trữ trong CMS hoặc mẫu thay vì viết lại chúng trong trình duyệt. Nếu bạn không thể thay đổi nguồn, hãy ghi lại nội dung hỗn hợp dưới dạng khoảng trống đã biết vì ổ khóa trên trang lấy tài nguyên văn bản gốc là tín hiệu sai.

Bước 4: HSTS bổ sung những gì và không bổ sung gì

HSTS là chính sách trang web chứ không phải là tùy chọn của trình duyệt và đây là cơ chế duy nhất ở đây tồn tại sau http:// được nhập trên cấu hình mới. Sau khi trình duyệt nhìn thấy tiêu đề Strict-Transport-Security cho máy chủ lưu trữ, trình duyệt sẽ ghi lại các yêu cầu sau đó thành https trước khi gửi chúng, đây chính xác là thuộc tính bạn muốn. Nó không có tác dụng gì đối với máy chủ mà trình duyệt chưa bao giờ truy cập và không có tác dụng gì đối với tên máy chủ khác phục vụ cùng một ứng dụng.

Kiểm tra xem nguồn gốc gửi gì bằng curl -sSI https://example.com | grep -i strict-transport-security. Tiêu đề bị thiếu là sự thay đổi của máy chủ chứ không phải thứ mà khách hàng có thể cài đặt. Nếu có, hãy đọc max-age và xem liệu includeSubDomains có được đặt hay không, vì thời gian tối đa ngắn sẽ hết hạn giữa các lần truy cập và việc thiếu includeSubDomains khiến mọi miền phụ không được bảo vệ. RFC 6797 xác định cách tác nhân người dùng áp dụng chính sách và những gì nó có thể bỏ qua. Tải trước là một cam kết riêng biệt, vì vậy hãy kiểm tra trạng thái thông qua API hstspreload.org trước khi hứa với bất kỳ ai rằng một miền có trong danh sách.

Xác minh và khôi phục

Việc khôi phục có chi phí thấp đối với cài đặt máy khách và đắt đối với HSTS. Tắt chế độ chỉ HTTPS sẽ khôi phục hành vi trước đó ngay lập tức; thời hạn tối đa dài thì không và những khách truy cập đã nhận được nó sẽ tiếp tục nâng cấp cho đến khi hết hạn.

Vì vậy hãy xác minh thứ tự trước khi gọi là xong. Tải lại từ bộ nhớ đệm nguội và xác nhận yêu cầu đầu tiên trong bảng điều khiển mạng là https mà không có chuyển hướng trước đó. Sau đó, hãy kiểm tra tên miền phụ, vì includeSubDomains là nơi các chính sách này thường thu hẹp hơn so với giả định. Sau đó, hãy kiểm tra một trang lấy nội dung của bên thứ ba vì nội dung hỗn hợp là lỗi tồn tại sau mọi bản sửa lỗi khác.

Nếu sau tất cả những điều đó, yêu cầu đầu tiên vẫn là http thì ứng dụng khách không còn là biến số nữa: liên kết mà mọi người nhấp vào là http. Tìm kiếm những nơi bạn kiểm soát để tìm dạng http của tên máy chủ, cập nhật chúng và kiểm tra lại với cùng một lần tải lại bộ nhớ đệm nguội. Hãy tách biệt câu hỏi VPN xuyên suốt vì đường hầm thay đổi những người có thể xem yêu cầu và không bao giờ thay đổi liệu yêu cầu có được mã hóa hay không. Dòng cần điền vào phiếu là yêu cầu đầu tiên là yêu cầu quan trọng và chuyển hướng chỉ là biên nhận cho một yêu cầu đã được gửi.

Bài viết liên quan