Chuyên mục
Network

Thiết lập chứng chỉ SSL Let’s Encrypt cho Homelab sử dụng Nginx Proxy Manager + Cloudflare + AdGuard Home

Làm sao để thiết lập chứng chỉ bảo mật SSL miễn phí của Let’s Encrypt cho các dịch vụ mạng trong homelab?

Nếu đã từng theo dõi các bài viết chia sẻ trước đây của mình về Nginx Proxy Manager, bạn đã biết câu trả lời:

  1. Cài đặt Nginx Proxy Manager.
  2. Trỏ tên miền về Public IP của Router.
  3. Thiết lập Proxy Host trong Nginx Proxy Manager, trỏ về IP của máy chủ đang cài đặt dịch vụ và tạo chứng chỉ SSL Let’s Encrypt.

Cách này tuy đơn giản, dễ thao tác nhưng lại gây ra nguy cơ bảo mật. Vì lúc này bạn đang mở dịch vụ của mình ra Internet. Ai cũng có thể truy cập vào dịch vụ của bạn trong Homelab nếu mò ra tên miền, dẫn đến nguy cơ bị hack.

Bài viết này mình sẽ hướng dẫn cách thiết lập chứng chỉ SSL bảo mật của Let’s Encrypt cho dịch vụ mạng trong homelab mà không cần phải mở kết nối ra Internet. Các dịch vụ chỉ có thể truy cập từ các máy tính trong mạng nội bộ, bảo đảm an toàn, không lo bị hack.

I. Tại sao phải cần SSL của Let’s Encrypt?

Trên thực tế, bạn có thể tự tạo chứng chỉ SSL (self-signed ssl certificate) để truy cập dịch vụ qua giao thức ssl, nhưng sẽ phải đối mặt với cảnh bảo từ trình duyệt như dưới đây. Phải bấm Accept the Risk and Continue mới truy cập được.

Khi thay bằng chứng chỉ SSL bảo mật của Let’s Encrypt, kết nối vào dịch vụ mạng sẽ trơn tru thông suốt, khỏi bị phiền bởi thông báo chướng mặt. Và nhất là nhìn thấy chuyên nghiệp hơn hẳn!

II. Yêu cầu chuẩn bị

Dưới đây là chú thích các từ khóa viết tắt trong tiêu đề bài viết

  • NPM: Nginx Proxy Manager
  • CF: Cloudflare
  • AH: AdGuard Home

Trước khi bắt đầu, bạn cần phải chuẩn bị sẵn hệ thống như sau

III. Thiết lập Wildcard SSL trong Nginx Proxy Manager

Wildcard SSL là một chứng chỉ SSL có thể dùng cho tên miền chính và tất cả các tên miền phụ của website. Nó là lựa chọn lý tưởng khi bạn cần sử dụng nhiều tên miền phụ (sub domain) cho nhiều website và dịch mạng khác nhau.

Mình sử dụng Nginx Proxy Manager để tạo Wildcard SSL Let’s Encrypt cho tên miền *.home.thuanbui.me, sử dụng tính năng DNS Challenge của Cloudflare.

Mình đã có bài viết hướng dẫn chi tiết bên dưới nhé

Nginx Proxy Manager – Thiết lập chứng chỉ bảo mật Wildcard SSL cho subdomain

IV. Tạo DNS Rewrite trong AdGuard Home

DNS Rewrites là tính năng của AdGuard Home để tạo DNS dành riêng cho kết nối mạng trong nhà. Ví dụ: mình có thể thiết lập tên miền google.com và trỏ về IP 1.1.1.1, mọi truy cập vào google.com từ các thiết bị trong nhà sẽ tự động chuyển hướng về IP 1.1.1.1

Mình sẽ dùng tính năng này để chuyển hướng tên miền *.home.thuanbui.me về địa chỉ IP của máy chủ đang cài đặt Nginx Proxy Manager.

Đăng nhập vào AdGuard Home, truy cập vào Filters –> DNS rewrites. Bấm Add DNS rewrite vào tạo 1 mục mới tương tự như hình bên dưới.

Giờ mở trình duyệt, truy cập vào bất kỳ tên miền có dạng *.home.thuanbui.me, ví dụ http://deluge.home.thuanbui.me, AdGuard Home sẽ tự động chuyển hướng về máy chủ 192.168.0.50, hiện ra trang mặc định của Nginx Proxy Manager.

Kết nối này chỉ hiệu lực khi đang ở trong mạng LAN. Còn khi truy cập vào tên miền deluge.home.thuanbui.me khi ở ngoài mạng LAN, kết nối sẽ không thực hiện được do mình không thiết lập subdomain này trên Cloudflare.

Chú ý: Bạn không thể dùng Pi-Hole để tạo Local DNS Record được vì Pi-Hole không hỗ trợ Wildcard DNS.

V. Tạo Proxy Host trong Nginx Proxy Manager

Việc cuối cùng cần làm là thiết lập Proxy Host trong Nginx Proxy Manager. Mình sẽ tạo tên miền deluge.home.thuanbui.me, chuyển hướng về dịch vụ Deluge – công cụ tải torrent.

Nhập vào tên miền deluge.home.thuanbui.me, địa chỉ IP của server đang cài Deluge và Port 8112

Chuyển qua tab SSL:

  • Chọn mục *.home.thuanbui.me trong phần SSL Certificate.
  • Kích hoạt Force SSL và HTTP/2 Support

Bấm Save để lưu lại

Giờ mình đã có thể truy cập vào địa chỉ https://deluge.home.thuanbui.me để sử dụng Deluge ngon lành, không bị báo lỗi Self-Signed SSL nữa.

Lập lại các bước tạo Proxy Host như trên cho các dịch vụ mạng khác trong homelab.

Vậy là xong. Chúc bạn thực hiện thành công!

Nguồn: thuanbui