Có mã hóa SSL ngay từ đầu là điều kiện kèm theo tiên quyết so với HSTS, vì nếu không việc kích hoạt HSTS sẽ khiến website của bạn không hề truy vấn được. Bạn hoàn toàn có thể đọc hướng dẫn của chúng tôi về cách thiết lập chứng từ SSL không tính tiền với LetsEncrypt để bật HTTPS trên website của bạn .
HSTS hoạt động như thế nào?
HSTS là viết tắt của HTTP Nghiêm ngặt truyền tải bảo mật thông tin và kiểm soát và điều chỉnh cách trình duyệt của người dùng liên kết với website của bạn .
Đây là cách đăng nhập vào trang web của bạn thường hoạt động. Người dùng muốn kết nối với trang web của bạn và gửi yêu cầu kết nối đến máy chủ của bạn. Máy chủ của bạn thực hiện nhiệm vụ có trách nhiệm và gửi một phản hồi dứt khoát 301 Moved tới trình duyệt, cho trình duyệt biết rằng địa chỉ HTTP mà nó yêu cầu phải được chuyển hướng đến HTTPS. Người dùng tiếp tục bình thường trong khi duyệt hoàn toàn an toàn.
Bạn đang đọc: HSTS là gì và làm cách nào để cấu hình nó?
Tuy nhiên, kẻ tiến công có quyền trấn áp liên kết ( như trường hợp tiến công man-in-the-middle ) hoàn toàn có thể thuận tiện chặn phản hồi 301 và trấn áp phiên duyệt web của người dùng đó. Đây là một yếu tố lớn vì nó vượt mặt mục tiêu mã hóa trang web ngay từ đầu .
Với HSTS được bật, sever sẽ gửi cùng một phản hồi dứt khoát 301 Di chuyển, nhưng cũng gửi một tiêu đề có nội dung “ Này, tôi không tương hỗ HTTP. Thậm chí đừng cố tạo nhiều nhu yếu HTTP hơn, vì tôi sẽ chuyển hướng tổng thể. Trình duyệt nhận được tin nhắn và chuyển hướng đến HTTPS trước khi gửi bất kỳ thứ gì. Điều này bảo vệ rằng website của bạn trọn vẹn là HTTPS, theo mặc định, mọi lúc .
Tải trước HSTS
Tuy nhiên, HSTS tiêu chuẩn có một lỗ hổng lớn : liên kết tiên phong do người dùng triển khai vẫn không bảo đảm an toàn. Nếu người dùng đã sử dụng website của bạn trước đây, trình duyệt sẽ tuân theo nhu yếu HSTS trong tương lai. Nhưng phản hồi HSTS bắt đầu không bảo đảm an toàn, thế cho nên nếu người dùng đang duyệt quán cafe và mở website của bạn lần tiên phong ( hoặc lần tiên phong trên thiết bị di động ), liên kết của họ vẫn hoàn toàn có thể bị tiến công .
Tải trước HSTS là một ý tưởng sáng tạo của dự án Bất Động Sản Chromium để xử lý yếu tố này. Dự án Chromium luôn duy trì list những website đã bật HSTS. Danh sách này được tích hợp vào hầu hết những trình duyệt chính và trình duyệt sẽ kiểm tra nó trước khi đưa ra nhu yếu so với những website mới .
Nếu bạn có trong list, ngay cả khi người dùng chưa khi nào tương tác với website của bạn trước đây, họ sẽ hành vi như thể họ đã nhìn thấy tiêu đề HSTS của bạn trước đây và sẽ không khi nào tiếp xúc với HTTP. Điều này làm cho liên kết trọn vẹn bảo đảm an toàn ngay từ đầu .
Kích hoạt HSTS và tham gia danh sách tải trước
HSTS hoàn toàn có thể được bật bằng một tiêu đề đơn thuần, được thêm vào tổng thể những phản hồi do sever của bạn gửi :
Strict-Transport-Security: max-age = 300; bao gồm các tên miền; tải trước
Bạn có thể đưa nó vào tệp cấu hình máy chủ web của mình. Ví dụ: trong Nginx, bạn có thể đặt tiêu đề bằng cách bao gồm add_header
dòng trong khối máy chủ của bạn:
add_header Nghiêm ngặt-Vận chuyển-Bảo mật 'max-age = 300; includeSubDomains; tải trước; luôn luôn;'
Và đối với Apache, lệnh cũng tương tự, sử dụng Header always set
hàng:
Tiêu đề luôn đặt Nghiêm ngặt-Vận chuyển-Bảo mật "max-age = 300; includeSubDomains; tải trước"
Tuy nhiên, có một số ít bước nữa để bảo vệ mọi thứ hoạt động giải trí thông thường và đủ điều kiện kèm theo để tải trước .
Trước tiên, hãy bảo vệ rằng bạn đang chuyển hướng toàn bộ những nhu yếu HTTP đến HTTPS. Trên Nginx, bạn hoàn toàn có thể thực thi việc này bằng cách lắng nghe toàn bộ những nhu yếu từ cổng 80 ( HTTP ) và gửi nhu yếu 301 với URL được biến hóa thành HTTPS tương tự :
máy chủ {nghe 80; trả về 301 https: // $ host $ request_uri; }
Để được hưởng lợi từ việc tải trước, bạn cũng cần đảm bảo rằng tất cả các miền phụ của bạn đều được bao phủ bởi chứng chỉ SSL của bạn và bạn đang cung cấp chúng qua HTTPS. Bạn có thể làm điều này với một chứng chỉ chung, bạn có thể nhận được miễn phí từ LetsEncrypt. Nếu bạn không tải trước thì không cần thiết nhưng luôn được khuyến khích.
Bạn có thể kiểm tra xem HSTS có hoạt động bình thường hay không bằng cách tải trang web của bạn với tiêu đề được bật và sau đó truy cập chrome://net-internals/#hsts
và bằng cách nhập tên trang web của bạn vào công cụ tìm kiếm “Truy vấn miền HSTS / PKP”. Nếu trang web của bạn hiển thị đầu ra như thế này, HSTS đã được bật.
Ngoài ra, bạn cần kiểm tra xem strict-transport-security
tiêu đề được bao gồm trong tiêu đề phản hồi của trang web của bạn, bạn có thể thực hiện việc này từ tab Mạng của Bảng điều khiển dành cho nhà phát triển Chrome:
Khi bạn đã hoàn thành xong toàn bộ những điều đó, bạn cần kiểm tra xem mọi thứ có đang hoạt động giải trí hay không và không có gì bị hỏng khi bạn bật HSTS. Nếu không có yếu tố gì, bạn hoàn toàn có thể chuyển đến trang gửi trước, nhập tên miền và gửi website của bạn .
Sự cố tải trước HSTS và HSTS
Với HSTS, website của bạn hiện buộc phải sử dụng HTTPS để tổng thể. Điều này gồm có toàn bộ những tên miền phụ, thậm chí còn cả những công cụ nội bộ. Mỗi tên miền phụ bạn có phải có chứng từ SSL hợp lệ và được bảo mật thông tin bằng HTTPS, nếu không, nó sẽ không hề truy vấn được trong thời hạn của tiêu đề HSTS ( hoàn toàn có thể lên đến hai năm ). Nếu bạn có chứng từ ký tự đại diện thay mặt, bạn hoàn toàn có thể khắc phục một số ít yếu tố này, nhưng bạn nên kiểm tra trước khi kích hoạt nó trong một thời hạn dài .
Vấn đề chính với tải trước HSTS là nó rất lâu dài. Tối thiểu max-age
là một năm và khi trang web của bạn có trong danh sách, bạn không thể rời khỏi danh sách mà không phải trải qua quá trình xóa kéo dài, yêu cầu mỗi người dùng thực hiện cập nhật trình duyệt để áp dụng các thay đổi.
Bạn hoàn toàn có thể xem list meta những nhu yếu xóa này để xem những yếu tố chính trong trong thực tiễn là gì. Uber đã gặp yếu tố với những miền phụ. Tên miền phụ cấp ba và cấp cao nhất hoàn toàn có thể không được tương hỗ trên những ghi nhận chung thường thì. Một website của Thụy Điển thậm chí còn còn báo cáo giải trình lệch giá quảng cáo thấp hơn đáng kể vì những nhà quảng cáo địa phương không tải tài nguyên của họ qua HTTPS và HSTS chặn tổng thể những nhu yếu HTTP không bảo đảm an toàn được thực thi trong khi người dùng đăng nhập vào website của bạn .
Cách tốt nhất để tránh những vấn đề này là triển khai HSTS theo từng giai đoạn trước khi chuyển vĩnh viễn sang tải trước. Dự án Chromium khuyên bạn nên thực hiện các thử nghiệm theo từng khoảng thời gian bằng cách đặt max-age
giá trị đầu tiên sau năm phút để kiểm tra xem nó có hoạt động không:
tuổi tối đa = 300; includeSubDomains
Sau đó đến một tuần cho một bài kiểm tra dài hơn:
tuổi tối đa = 604800; includeSubDomains
Sau đó trong một tháng, cho đến khi bạn chắc như đinh rằng không có yếu tố gì :
tuổi tối đa = 2592000; includeSubDomains
Nếu có gì đó không ổn và bạn đặt một khoảng thời gian thực sự dài max-age
thuộc tính này, bạn có thể xóa cờ cục bộ của Chrome net-internals
.
Khi bạn chắc chắn rằng sẽ không có gì xảy ra với việc chỉ bật HTTPS mọi lúc, bạn có thể định cấu hình max-age
sau hai năm, thêm preload
chỉ thị và gửi trang web của bạn để tải trước.
Source: https://wincat88.com
Category: BLOG