#

Cách cấu hình SSL và redirect từ HTTP sang HTTPS trên NGINX

 07/01/2022 - 08:00 Trịnh Duy Thanh

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. Mặt khác, 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 những nội dung sau đây:

  • SSL là gì? Vì sao cần bảo vệ website bằng chứng chỉ SSL?

Vì sao cần cấu hình giao thức https cho website chạy trên NGINX Web Server?

Vi sao can cau hinh https cho 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:

# HTTPS server

# server {

# listen 443 ssl;

# server_name localhost;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;

# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;

# ssl_prefer_server_ciphers on;

# location / {
# root html
# index index.html index.htm;
  }
}

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:

# HTTPS server
server {
listen 443 ssl;
server_name localhost;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
   }
 }

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:

ssl_certificate      cert.pem;
ssl_certificate_key  cert.key;

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:

ssl_certificate     www.example.com.chained.crt;
ssl_certificate_key www.example.com.key

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:

server {
   listen 80 default_server;
   server_name _;
   return 301 https://$host$request_uri;
}

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:

server {
   listen 80;
   server_name yourdomain.com;
   return 301 https://yourdomain.com$request_uri;
}

Để 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!

Cai dat SSL va redirect tu http sang https cho website chay tren NGINX

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!


BKHOST là nhà cung cấp dịch vụ lưu trữ tiên phong trên công nghệ điện toán đám mây với các dịch vụ ưu việt như Cloud Hosting, Cloud Server, Cloud File,…

Giảm giá tới 30% TRỌN ĐỜI khi đăng ký dịch vụ Email Server 


Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger