Bài viết này sẽ giúp bạn hiểu rõ SSL là gì, vì sao cần SSL, và hướng dẫn từng bước cài đặt SSL trên Linux: tự ký, Let’s Encrypt, và Cloudflare. Dù bạn là người mới hay webmaster lâu năm, đọc xong là tự tin bảo vệ website luôn!
SSL Là Gì? Vì Sao Website Cần SSL?
SSL (Secure Sockets Layer) là công nghệ mã hóa giúp bảo vệ dữ liệu truyền giữa trình duyệt và server. Khi website có SSL, địa chỉ sẽ là https:// và có biểu tượng ổ khóa xanh. Điều này giúp tăng uy tín, bảo mật thông tin khách hàng, và còn giúp SEO tốt hơn.
Nếu không có SSL, dữ liệu dễ bị đánh cắp, website bị cảnh báo "không an toàn" trên trình duyệt. Đặc biệt, Google ưu tiên website có SSL trên kết quả tìm kiếm!
Các Cách Cài Đặt SSL Trên Linux
Có 3 cách phổ biến:
Tự tạo chứng chỉ SSL (self-signed): Dùng cho test, nội bộ, không khuyến khích cho website public.
Sử dụng SSL miễn phí Let’s Encrypt: Được hầu hết trình duyệt tin cậy, dễ cài đặt, tự động gia hạn.
Sử dụng SSL miễn phí Cloudflare: Không cần thao tác trên server, chỉ cần trỏ domain về Cloudflare.
Bây giờ, mình sẽ hướng dẫn chi tiết từng cách nhé!
Tự Tạo Chứng Chỉ SSL (Self-Signed)
Cách này phù hợp cho môi trường test, dev, hoặc nội bộ. Website public thì không nên dùng vì trình duyệt sẽ cảnh báo "không an toàn".
Thêm website, làm theo hướng dẫn để trỏ nameserver domain về Cloudflare
Bước 2: Bật SSL/TLS Trên Cloudflare
Vào tab SSL/TLS, chọn chế độ "Full" hoặc "Full (strict)" để bảo mật tối đa
Cloudflare sẽ tự động cấp chứng chỉ SSL cho website của bạn
Bước 3: Cấu Hình Web Server (Khuyến nghị)
Nếu dùng chế độ "Full (strict)", bạn nên cài đặt chứng chỉ gốc của Cloudflare lên server:
Vào SSL/TLS > Origin Server > Create Certificate
Tải về file .pem và .key, cấu hình như hướng dẫn ở phần self-signed phía trên
Nếu chỉ dùng "Full", không cần thao tác gì thêm
Bước 4: Chuyển Hết HTTP Sang HTTPS
Vào tab "SSL/TLS > Edge Certificates", bật "Always Use HTTPS"
Có thể bật thêm "Automatic HTTPS Rewrites" để tự động chuyển link cũ sang HTTPS
HTTP/2, HTTP/3 Là Gì? Cách Kích Hoạt
HTTP/2 và HTTP/3 là các phiên bản mới của giao thức HTTP, giúp website tải nhanh hơn, bảo mật tốt hơn so với HTTP/1.1 truyền thống. HTTP/2 sử dụng multiplexing (gửi nhiều request cùng lúc trên 1 kết nối), giảm độ trễ. HTTP/3 dựa trên giao thức QUIC, tối ưu tốc độ và bảo mật, đặc biệt hiệu quả trên mạng không ổn định.
Cách Kích Hoạt HTTP/2
Apache
Đảm bảo đã cài SSL (HTTPS).
Kích hoạt module http2:
a2enmod http2
systemctl restart apache2
Thêm dòng sau vào VirtualHost (trong file cấu hình site):
Protocols h2 http/1.1
Nginx
Đảm bảo đã cài SSL (HTTPS).
Thêm http2 vào dòng listen:
listen443 ssl http2;
Reload lại Nginx:
systemctl reload nginx
Cách Kích Hoạt HTTP/3
Nginx (bản mới)
Cần Nginx bản build với QUIC/HTTP3 (hoặc dùng OpenResty, hoặc build thủ công).
Không cần thao tác gì trên server, Cloudflare sẽ tự xử lý.
Lưu ý:
HTTP/2 và HTTP/3 đều yêu cầu website phải dùng HTTPS (SSL).
Sau khi cấu hình, kiểm tra bằng HTTP/2 Test hoặc HTTP/3 Test để xác nhận website đã hỗ trợ.
Một Số Lưu Ý Khi Cài Đặt SSL
Luôn backup cấu hình trước khi thay đổi
Kiểm tra lại website sau khi cài SSL, đảm bảo không bị lỗi "mixed content"
Nếu dùng Cloudflare, nên bật thêm các tính năng bảo mật như DDoS Protection, Firewall Rules
Định kỳ kiểm tra hạn chứng chỉ, nhất là khi dùng self-signed hoặc Let’s Encrypt thủ công
Câu Hỏi Thường Gặp (FAQ)
SSL miễn phí có an toàn không?
Hoàn toàn an toàn nếu bạn dùng Let’s Encrypt hoặc Cloudflare. Được các trình duyệt lớn tin cậy, bảo mật tốt, không thua gì SSL trả phí cho website thông thường.
Nên chọn Let’s Encrypt hay Cloudflare?
Let’s Encrypt phù hợp nếu bạn muốn kiểm soát hoàn toàn server. Cloudflare tiện lợi, không cần thao tác trên server, lại có thêm nhiều tính năng bảo mật khác.
Làm sao kiểm tra website đã cài SSL thành công?
Truy cập website, xem có ổ khóa xanh không. Hoặc dùng SSL Labs để kiểm tra chi tiết.
Lời Kết
Cài SSL cho website không hề khó, chỉ cần làm đúng hướng dẫn là bạn đã bảo vệ website, tăng uy tín và chuẩn SEO hơn rất nhiều. Nếu gặp khó khăn, hãy để lại bình luận hoặc liên hệ mình nhé. Chúc bạn thành công và website luôn an toàn!