Giới thiệu
Trong thế giới kỹ thuật mạng, việc bảo mật dữ liệu là vô cùng quan trọng. Một trong những phương pháp bảo mật phổ biến là sử dụng SSL (Secure Sockets Layer). Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt SSL cho HAProxy sử dụng LetsEncrypt – một dịch vụ cung cấp chứng chỉ SSL miễn phí và tự động.
Chuẩn bị
Trước khi bắt đầu, chúng ta cần chuẩn bị một vài thứ. Đầu tiên, bạn cần cài đặt HAProxy trên máy chủ của bạn. HAProxy là một reverse proxy và load balancer phổ biến được sử dụng để điều hướng các yêu cầu từ người dùng đến các máy chủ ứng dụng. Bạn cũng cần cài đặt Let’s Encrypt client để tạo chứng chỉ SSL miễn phí.
Cài đặt SSL cho HAProxy sử dụng LetsEncrypt
Trong phần này, chúng ta sẽ sử dụng certificate được cung cấp bởi một nhà cung cấp certificate (certificate authority – CA). Sử dụng certificate này cho phép website được xác thực khi truy cập internet. Với điều kiện hạn chế, chúng ta có thể sử dụng certificate miễn phí của một số nhà cung cấp.
Trong phần cấu hình này, chúng ta sử dụng Let’s Encrypt để nhận certificate miễn phí với mỗi lần renew là 90 ngày.
Yêu cầu:
- Website publish với tên miền internet
Bước 1 : Cài Đặt Certbot
Đầu tiên, cài đặt Certbot trên máy chủ của bạn bằng cách chạy các lệnh sau trên terminal:
sudo apt-get update
sudo apt-get install certbot
sudo add-apt-repository -y ppa:certbot/certbot
Bước 2 :Sử dụng Certbot để tạo và cài đặt chứng chỉ SSL
Đầu tiên bạn cần stop haproxy trước để tránh lỗi trùng port 80 nhé.
systemctl stop haproxy
Chạy lệnh sau để bắt đầu quá trình tạo chứng chỉ ( thay tên miền của bạn vào nhé, ở đây mình cài với tên miền haproxy.quyenlt.com ):
sudo certbot certonly --standalone -d haproxy.quyenlt.com
Sau khi quá trình tạo chứng chỉ hoàn thành, Certbot sẽ lưu chứng chỉ SSL mới tại ‘/etc/letsencrypt/live/{your_domain}/’ trên máy chủ của bạn.
Certificate is saved at: /etc/letsencrypt/live/haproxy.quyenlt.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/haproxy.quyenlt.com/privkey.pem
Bước 3 : Mở rộng key và cert thành tệp pem
Tệp pem là tệp tin chứa định dạng có thể chỉ public certificate hoặc có thể gồm tập public key, private key và root certificate kết hợp với nhau.
Chúng ta thực hiện nối private key và certificate ở trên để tạo thành tệp pem.
cd /etc/letsencrypt/live/haproxy.quyenlt.com
cat fullchain.pem privkey.pem | tee haproxy.quyenlt.pem
Bước 4 : Cài chứng chỉ lên cấu hình haproxy
Sau khi có chứng chỉ SSL, bạn có thể cấu hình HAProxy để sử dụng chúng. Mở file cấu hình HAProxy (thường là ‘/etc/haproxy/haproxy.cfg’) và thêm các dòng sau vào phần cấu hình frontend:
frontend http
bind *:80
bind *:443 ssl crt /etc/letsencrypt/live/haproxy.quyenlt.com/haproxy.quyenlt.pem
backend servers
mode http
server web1 192.168.10.2:80 check #IP node1
server web2 192.168.10.3:80 check #IP node2
Bước 5 : Sau khi đã thêm thông tin cấu hình này, bạn cần khởi động lại HAProxy để áp dụng các thay đổi.
Check xem nội dung file config có lỗi gì không nếu hiện như hình ảnh thì chuẩn rồi nhé :
haproxy -check -f /etc/haproxy/haproxy.cfg
Bây giờ restart lại haproxy để nhận các cấu hình SSL mới thêm nhé :
systemctl restart haproxy
Bước 6 : Kiểm tra xem đã có SSL chưa bằng công cụ SSL Checker :
Nếu tích xanh hết thì có nghĩa là đã có SSL .
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách cài đặt SSL cho HAProxy sử dụng LetsEncrypt. Việc cài đặt SSL giúp bảo mật dữ liệu và đảm bảo tính toàn vẹn của thông tin truyền qua mạng. Sử dụng LetsEncrypt, bạn có thể dễ dàng tạo chứng chỉ SSL miễn phí và tự động cho HAProxy. Hy vọng rằng bài viết này đã cung cấp cho bạn những thông tin hữu ích để bắt đầu cài đặt SSL cho HAProxy.