Tại sao cần SSL và chuyển hướng HTTPS

SSL (Secure Sockets Layer) giúp mã hoá dữ liệu truyền giữa trình duyệt và máy chủ, bảo vệ thông tin người dùng khỏi việc bị nghe lén hoặc thay đổi. Google cũng ưu tiên các trang có HTTPS trong thuật toán SEO, vì vậy việc cài đặt chứng chỉ SSL và chuyển hướng toàn bộ lưu lượng sang HTTPS là bắt buộc đối với hầu hết các dự án web hiện nay.

Cấu hình SSL trên hosting

Hầu hết các nhà cung cấp hosting hiện nay hỗ trợ cài đặt chứng chỉ SSL miễn phí từ Let's Encrypt. Quy trình chung gồm các bước sau:

  1. Đăng nhập vào bảng điều khiển hosting (cPanel, Plesk, hoặc giao diện riêng).
  2. Chọn mục SSL/TLS hoặc Let's Encrypt SSL.
  3. Nhập tên miền chính và các tên miền phụ (nếu có), sau đó nhấn Install.
  4. Kiểm tra trạng thái SSL trên trình duyệt: biểu tượng ổ khóa xanh xuất hiện và URL bắt đầu bằng https://.

Nếu hosting không cung cấp giao diện tự động, bạn có thể dùng certbot trên VPS để tạo chứng chỉ và tải lên thư mục /etc/ssl/ của server.

Sử dụng .htaccess để chuyển hướng HTTP sang HTTPS

Sau khi SSL đã được cài đặt, bước tiếp theo là đảm bảo mọi yêu cầu HTTP đều được chuyển hướng sang HTTPS. Điều này có thể thực hiện nhanh chóng bằng file .htaccess nằm ở thư mục gốc của website.

<IfModule mod_rewrite.c>
    RewriteEngine On
    # Kiểm tra nếu kết nối không phải HTTPS
    RewriteCond %{HTTPS} off
    # Chuyển hướng sang HTTPS, giữ nguyên đường dẫn và query string
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Giải thích:

  • mod_rewrite phải được bật trên server.
  • RewriteCond %{HTTPS} off kiểm tra trạng thái kết nối.
  • R=301 trả về mã chuyển hướng vĩnh viễn, giúp công cụ tìm kiếm cập nhật URL mới.

Chuyển hướng chỉ cho một tên miền

Nếu bạn muốn chuyển hướng chỉ cho một tên miền cụ thể, thay %{HTTP_HOST} bằng tên miền thực tế:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com%{REQUEST_URI} [L,R=301]

Kiểm tra và khắc phục lỗi thường gặp

Sau khi cấu hình, hãy kiểm tra bằng cách truy cập http://yourdomain.com. Nếu vẫn thấy trang không chuyển hướng, có thể:

  • File .htaccess không được server đọc vì AllowOverride None trong cấu hình Apache. Cần thay đổi thành AllowOverride All và khởi động lại Apache.
  • Modul mod_rewrite chưa được kích hoạt. Kích hoạt bằng lệnh sudo a2enmod rewrite trên VPS.
  • Cache trình duyệt lưu lại phiên bản HTTP cũ. Xóa cache hoặc mở chế độ ẩn danh để kiểm tra lại.

Đối với lỗi Mixed Content (nội dung hỗn hợp), hãy chắc chắn mọi tài nguyên (hình ảnh, script, CSS) được tải qua https:// hoặc sử dụng giao thức tương đối //.

Kết luận

Việc cài đặt SSL và chuyển hướng toàn bộ lưu lượng sang HTTPS không chỉ nâng cao bảo mật mà còn cải thiện thứ hạng SEO. Thông qua file .htaccess bạn có thể thực hiện chuyển hướng nhanh chóng mà không cần thay đổi mã nguồn ứng dụng.

Để nắm vững quy trình triển khai từ đầu đến cuối, bao gồm mua tên miền, cấu hình server, và xử lý các lỗi thường gặp, bạn có thể Tham khảo khóa học "Deploy Web - Triển khai website lên môi trường Internet" tại đây.