Cài đặt SSL trên HAProxy

Lường Thế Nam 07/06/2022 3 phút đọc

 

HAProxy là một dịch vụ thích hợp cho các trang web có lưu lượng truy cập rất cao và do đó thường được sử dụng để cải thiện độ tin cậy và hiệu suất dịch vụ web cho các cấu hình đa máy chủ.

Để cài đặt SSL trên HAProxy, bạn vui lòng tham khảo hướng dẫn dưới đây: (lưu ý: các vị trí các tập tin có thể thay đổi theo thiết lập trên máy chủ của bạn)

1. Chuẩn bị file chứng chỉ SSL

  • Bạn sẽ lấy file private key khi thực hiện kích hoạt SSL được gửi tới email của bạn, thông thường định dạng file sẽ là: www_tên_miền_.key
  • Khi bạn tải tập tin chứng chỉ SSL đã hoàn tất xác thực, bạn sẽ nhận được các tập tin sau, bạn sẽ sử dụng 2 file như trong hình dưới đây:

Tiếp theo, bạn đưa 3 tập tin là www_tên_miền.key, www_tên_miền.pem, Chain_RootCA_Bundle.crt lên server và gõ lệnh sau để tạo ra tập tin pem sử dụng để cài cho HAProxy.

cat www_tên_miền.pem Chain_RootCA_Bundle.crt www_tên_miền.key > certificate.pem

2. Kiểm tra HAProxy đã hỗ trợ SSL

Bạn hãy chạy lệnh sau để kiểm tra phiên bản HAProxy:

haproxy -vv

Nếu kết quả trả về có thông tin dạng như sau, thì có nghĩa là HAProxy đã hỗ trợ SSL:

HA-Proxy version 1.6.3 2015/12/25
[...]
Built with OpenSSL version : OpenSSL 1.0.1e 11 Feb 2013
Running on OpenSSL version : OpenSSL 1.0.1e 11 Feb 2013
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes

Ngược lại, nếu bạn thấy kết quả như sau, thì bạn cần phải build lại HAProxy hỗ trợ SSL.

HA-Proxy version 1.6.3 2015/12/25
[...]
Built with OpenSSL version : not set

3. Cấu hình SSL cho HAProxy

Mở file cấu hình HAProxy /etc/haproxy/haproxy.cfg và chỉnh sửa lại: (Lưu ý đường dẫn có thể khác với máy chủ của bạn)

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

frontend https_front
   bind *:443 ssl crt /etc/ssl/certificate.pem #Đường dẫn tới tập tin pem đã tạo ở bước 1.
   reqadd X-Forwarded-Proto: https

backend http_back
   balance roundrobin
   server Server1 <private IP>:80 check
   server Server2 <private IP>:80 check

Sau khi cấu hình xong, bạn hãy chạy lệnh sau để kiểm tra file cấu hình:

haproxy -check -f /etc/haproxy/haproxy.cfg

Sau khi test cấu hình thành công, bạn hãy restart lại HAProxy để cấu hình có hiệu lực.

service haproxy restart

Lưu ý: Đây chỉ là tham khảo cho việc cài đặt SSL lên HAProxy, các thiết lập có thể sẽ khác với thiết lập của bạn, vui lòng kiểm tra và thay thế để tránh gặp lỗi.

Chúc các bạn thành công!






Bài viết liên quan