Khi bạn truy cập internet bằng trình duyệt Google Chrome, các trang web sử dụng HTTP sẽ bị đánh dấu là “Không an toàn”. Nhiều trình duyệt khác cũng đang làm giống như Google Chrome. Hôm nay, hãy cùng BKHOST tìm hiểu cách cấu hình SSL và redirect HTTP sang HTTPS cho website sử dụng NGINX Web Server.
Nếu bạn đang đọc bài viết này, chắc hẳn bạn đã có những kiến thức cơ bản về SSL Certificate và HTTPS rồi. Nhưng nếu bạn muốn tìm hiểu chi tiết hơn về SSL và HTTPS thì có thể xem thêm bài viết: SSL là gì? Vì sao cần cài đặt chứng chỉ SSL cho website?
Vì sao cần cấu hình giao thức https cho website chạy trên NGINX Web Server?
Mặc định, website chạy trên NGINX sẽ vẫn ở giao thức http. Do đó, bạn cần có một số tùy chỉnh thì website mới có thể chuyển sang giao thức https. Ngay sau đây, BKHOST sẽ hướng dẫn bạn cấu hình https server cho máy chủ NGINX.
Hướng dẫn cấu hình HTTPS trên NGINX (Cài SSL cho website trên NGINX)
Trước tiên, bạn cần chuẩn bị chứng chỉ SSL. Bạn có thể đăng ký SSL Certificate ở rất nhiều nhà cung cấp uy tín cả ở Việt Nam và Quốc Tế. Tham khảo bảng giá DỊCH VỤ SSL tại BKHOST.
Sau khi đã sở hữu chứng chỉ SSL, hãy tiếp tục theo các bước sau đây:
Bước 1: Tìm file nginx.conf và mở nó lên, tìm đến đoạn code # HTTPS server. Đoạn code này sẽ có nội dung như sau:
{{EJS0}}
Bước 2: Như bạn thấy, mặc định NGINX sẽ chưa mở HTTPS, bạn cần uncomment các đoạn code trên bằng cách bỏ đi dấu #. Lúc này đoạn code trong file của bạn sẽ như thế này:
{{EJS1}}
Trong cấu hình trên chúng ta sử dụng lệnh listen 443 ssl
; các kết nối HTTPS sẽ đi qua cổng 443.
Đoạn code:
{{EJS2}}
Có ý nghĩa rằng chúng ta sử dụng các file cert.pem và cert.key làm chứng chỉ SSL. Các file này cần nằm cùng một thư mục với file nginx.conf
Ngoài ra nếu bạn có URL của chứng chỉ SSL, bạn cũng có thể thay thế như sau:
{{EJS3}}
Hãy nhớ đổi lại các URL ở trên bằng URL của bạn nhé.
Cấu hình redirect từ http sang https trên NGINX
Ở phần tiếp theo, chúng ta sẽ thực hiện chuyển hướng (redirect) các đường link HTTP sang HTTPS.
Redirect tất cả các domain trên server sang HTTPS
Chúng ta thêm đoạn cấu hình server như sau:
{{EJS4}}
Trong đoạn trên chúng ta sử dụng server_name _;
để chuyển hướng tất cả các tên miền trên máy chủ.
Với return 301 https://$host$request_uri;
chúng ta thông báo với trình duyệt rằng tất cả các đường link cần được chuyển hướng hoàn toàn sang HTTPS.
Redirect chỉ một domain chỉ định
Nếu chỉ muốn thay đổi một tên miền sang HTTPS, bạn sử dụng đoạn code sau:
{{EJS5}}
Để server nhận các tùy chỉnh mà bạn vừa mới thay đổi, bạn cần khởi động lại máy chủ NGINX.
Cuối cùng hãy kiểm tra xem website của bạn đã chuyển từ HTTP sang HTTPS chưa nhé. Nếu bạn thấy có phần https kèm theo một ổ khóa ở đầu thanh URL của trình duyệt thì bạn đã thành công rồi đấy!
Như vậy, bạn đã biết cách cấu hình SSL và redirect từ http sang https cho website sử dụng NGINX Web Server. Nếu bạn còn bất kỳ thắc mắc nào, hãy chia sẻ trong phần bình luận, BKHOST sẽ cố gắng trả lời bạn sớm nhất có thể. Chúc bạn thành công!
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.