HTTPS/SSL là gì và vì sao web tiệm bạn bắt buộc phải có
Vì sao chữ Không bảo mật cạnh tên tiệm giết chuyển đổi mạnh hơn cả tụt hạng Google, và ba việc thật phải làm: bật SSL, chuyển hướng 301, dọn nội dung lẫn lộn.
Chị Nhàn mở spa ở Gò Vấp, web chạy được nửa năm, khách nhắn Zalo hỏi: “Chị ơi web của chị em bấm vào nó báo không an toàn, có phải web giả không?” Chị mở lên xem, Chrome hiện chữ Không bảo mật ngay bên trái tên miền. Chị mất bao nhiêu khách trước khi có người chịu nhắn hỏi, không ai biết. Bài này để bạn xử lý dứt điểm chuyện đó tối nay.
Cái khóa đó nghĩa là gì
Khi khách gõ số điện thoại vào form đặt lịch trên web bạn, dữ liệu đó phải đi từ điện thoại họ, qua wifi, qua nhà mạng, rồi mới tới máy chủ chứa web.
- http (không có s): dữ liệu đi ở dạng chữ thường, ai đứng giữa cũng đọc được. Giống bạn viết số điện thoại lên tờ giấy rồi chuyền tay qua năm người.
- https (có s, có cái khóa): dữ liệu được mã hóa. Người đứng giữa vẫn thấy có gói tin đi qua nhưng không đọc được nội dung. Giống bỏ tờ giấy vào phong bì dán kín.
Chỗ nguy hiểm nhất trong thực tế là wifi công cộng — quán cà phê, sân bay, trung tâm thương mại. Ở đó việc chen vào giữa dễ hơn nhiều so với mạng nhà. Mà đúng chỗ đó lại là nơi khách hay ngồi lướt điện thoại tìm quán, tìm spa, tìm nha khoa. SSL (tên kỹ thuật đúng bây giờ là TLS) là bộ chứng chỉ làm nên cái phong bì đó.
Không có thì mất gì
Mất khách, trước cả khi mất hạng. Chrome không hiện dòng cảnh báo nhỏ nhẹ đâu — nó hiện chữ “Không bảo mật” đúng cạnh tên tiệm bạn, mỗi lượt xem, trên mọi trang. Khách không phân biệt được “chưa cài chứng chỉ” với “trang lừa đảo”. Họ thoát.
Form bị cảnh báo nặng hơn. Ngay khi khách bấm vào ô nhập số điện thoại trên trang http, Chrome bật cảnh báo đỏ. Nghĩa là nó đánh đúng vào bước quan trọng nhất — bước khách sắp để lại thông tin.
Google có tính, nhưng nhẹ. HTTPS là một tín hiệu xếp hạng, nhưng là tín hiệu nhẹ. Mình nói thẳng để bạn khỏi bị hù: bạn không bật HTTPS thì không tụt xuống trang 5. Cái giết bạn là chuyển đổi — người vào web rồi thoát vì thấy chữ cảnh báo. Nếu web bạn đang có cả vấn đề không xuất hiện trên Google thì đó là chuyện khác, xử lý riêng.
Chứng chỉ giờ MIỄN PHÍ — đừng để ai bán bạn vài triệu
Đây là phần mình muốn bạn nhớ nhất. Từ khi Let’s Encrypt ra đời, chứng chỉ SSL cơ bản (loại DV — chỉ xác minh bạn sở hữu tên miền) là miễn phí, tự động gia hạn, và mọi hosting tử tế đều tích hợp sẵn chỉ cần bật một nút.
Nếu có bên báo giá “SSL 2 triệu/năm” cho web một tiệm nhỏ, đó là bán đắt. Có ba loại chứng chỉ:
| Loại | Xác minh gì | Giá | Tiệm nhỏ cần? |
|---|---|---|---|
| DV (Let’s Encrypt) | Bạn sở hữu tên miền | 0đ | Đúng cái bạn cần |
| OV | Doanh nghiệp có thật, có hồ sơ | Vài triệu/năm | Không |
| EV | Doanh nghiệp, thẩm định kỹ | Vài triệu tới chục triệu | Không |
Cái khóa trên thanh địa chỉ trông y hệt nhau ở cả ba loại — khách không thấy khác biệt nào. OV/EV chỉ có ý nghĩa với ngân hàng, ví điện tử, sàn lớn. Tiệm bún bò, spa, nha khoa, gara: dùng DV miễn phí, xong.
Ba việc thật phải làm
1. Bật SSL ở nhà cung cấp
Vào trang quản trị hosting — nếu bạn còn chưa chắc tài khoản hosting và tên miền của mình nằm ở đâu, bài này giải thích ba thứ đó — tìm mục “SSL”, “SSL/TLS” hoặc “Let’s Encrypt”. Bấm cấp chứng chỉ cho cả tiemcuaban.com và www.tiemcuaban.com. Chờ 1–15 phút. Xong, mở https://tiemcuaban.com xem có khóa chưa.
Nếu web bạn chạy sau Cloudflare, vào SSL/TLS và đặt chế độ Full (strict). Đừng để “Flexible” — chế độ đó khách thấy khóa nhưng đoạn từ Cloudflare về máy chủ vẫn không mã hóa, và hay gây lỗi lặp chuyển hướng.
2. Chuyển hướng 301 toàn bộ http sang https
Bật SSL xong, web bạn có hai bản cùng tồn tại: bản http và bản https. Cả khách lẫn Google đều có thể vào nhầm bản cũ. Phải ép mọi truy cập về https bằng chuyển hướng vĩnh viễn (301).
- WordPress: cài plugin “Really Simple SSL”, bật, xong.
- Hosting cPanel: mục “Domains” thường có công tắc “Force HTTPS Redirect”.
- Cloudflare: SSL/TLS → Edge Certificates → bật Always Use HTTPS.
Kiểm tra: gõ thẳng http://tiemcuaban.com vào trình duyệt. Nếu thanh địa chỉ tự đổi thành https:// là được. Nhớ sửa luôn địa chỉ web trong Google Business Profile và trên Facebook thành bản https:// — mình có bài riêng về chuyện đồng bộ GBP với website.
3. Dọn nội dung lẫn lộn (mixed content)
Đây là chỗ hay bị kẹt: bật SSL rồi mà vẫn không thấy khóa, hoặc khóa có gạch chéo. Nguyên nhân gần như luôn là có ảnh, font, hoặc đoạn mã trong trang còn được nhúng bằng đường dẫn http://. Trình duyệt thấy một món hàng chưa dán phong bì thì không cấp khóa cho cả trang.
Cách tìm chính xác chỗ hỏng, làm được trên máy tính trong 2 phút:
- Mở trang bị lỗi trên Chrome.
- Bấm
F12(hoặcCtrl + Shift + I) để mở DevTools. - Chọn tab Console.
- Tải lại trang bằng
Ctrl + R. - Đọc các dòng chữ vàng/đỏ có chữ
Mixed Content. Nó ghi thẳng đường dẫn file đang dùng http.
Copy đường dẫn đó, vào trang quản trị web, tìm và sửa http:// thành https://. Với WordPress, chạy plugin “Better Search Replace” đổi toàn bộ http://tiemcuaban.com thành https://tiemcuaban.com trong cơ sở dữ liệu — nhưng sao lưu trước khi chạy, vì thao tác này đụng thẳng vào dữ liệu và không có nút hoàn tác. Mình đã viết kỹ về cách sao lưu và diễn tập phục hồi.
Cảnh báo: một ảnh nhúng từ web khác bằng http cũng đủ làm mất khóa. Cách chắc ăn nhất là tải ảnh về, đặt trong hosting của bạn.
Chứng chỉ hết hạn: dấu hiệu và cách phòng
Chứng chỉ Let’s Encrypt có hạn 90 ngày. Bình thường hệ thống tự gia hạn ở ngày thứ 60, bạn không phải làm gì. Nhưng khi tự động hỏng, bạn sẽ thấy:
- Trình duyệt hiện màn hình đỏ toàn trang: “Kết nối của bạn không phải là kết nối riêng tư” /
NET::ERR_CERT_DATE_INVALID. - Khách nhắn Zalo báo “web chị bị lỗi virus” — đây thường là tín hiệu đầu tiên bạn nhận được, và nó tới muộn.
Phòng: mở đúng ba việc.
- Bấm vào cái khóa trên thanh địa chỉ → xem chứng chỉ → ghi lại ngày hết hạn.
- Đặt lời nhắc điện thoại trước ngày đó 20 ngày, mỗi 3 tháng lặp lại một lần cho tới khi bạn chắc chắn tự động gia hạn hoạt động ổn.
- Kiểm tra hosting có bật “Auto-renew SSL” không. Nếu không thấy mục đó, hỏi thẳng nhà cung cấp.
HSTS: nói ngắn
HSTS là một dòng lệnh bạn bật ở máy chủ, bảo trình duyệt “từ nay tên miền này chỉ được vào bằng https, kể cả người dùng gõ http cũng đừng thử”. Nó chặn một kiểu tấn công ở khoảnh khắc chuyển hướng đầu tiên. Chỉ bật khi https đã chạy ổn định vài tuần và mọi subdomain đều có SSL — vì bật rồi thì trình duyệt sẽ nhớ trong nhiều tháng, gỡ ra không dễ.
Làm được ngay tối nay
- Mở web tiệm bạn trên điện thoại. Có khóa không? Có chữ “Không bảo mật” không?
- Gõ
http://tiemcuaban.com— nó có tự nhảy sanghttps://không? Không thì bật Force HTTPS. - Mở DevTools → Console trên trang chủ và trang liên hệ, tìm chữ
Mixed Content, ghi lại đường dẫn cần sửa. - Bấm vào khóa, xem ngày hết hạn chứng chỉ, đặt lời nhắc.
- Sửa địa chỉ web trong Google Business Profile và Facebook thành bản
https://.
Web mình dựng ra có HTTPS bật sẵn và tự gia hạn, bạn không phải đụng vào bất cứ bước nào ở trên — xem quy trình hoặc bảng giá nếu bạn đang cân nhắc làm lại từ đầu thay vì vá web cũ.