Cài đặt SSL cho HAProxy
Để cài đặt SSL cho HAProxy, bạn thực hiện theo các bước sau đây:
1. Chuẩn bị bộ chứng thư số
Sau khi hoàn tất quá trình xác thực, bạn sẽ nhận được chứng chỉ ssl gồm nhiều định dạng khác nhau. Bạn sẽ cần kết hợp 2 file này với private key mà bạn đã tạo ra trong quá trình tạo CSR / hoặc nếu bạn tạo trực tuyến trên hệ thống thì bạn đã có sẵn trên chi tiết đơn hàng.
Từ dấu nhắc lệnh, hãy chạy lệnh sau:
cat certificate.cer intermediate.cer private.key > certificate.pem
2. Kiểm tra HAProxy đã hỗ trợ SSL
Từ dấu nhắc lệnh, hãy chạy lệnh sau:
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
Để cài đặt HAProxy hỗ trợ SSL, bạn cần backup file cấu hình, xóa bản HAProxy đã cài đặt, sau đó cài đặt lại bản HAProxy có hỗ trợ SSL. Ví dụ sau là cài đặt HAProxy trên CentOS 7:
yum install gcc pcre-static pcre-devel openssl-devel mod_ssl -y
wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.9.tar.gz
tar xzvf haproxy.tar.gz
cd haproxy-1.7.9
make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1
make install
(Tham khảo từ nguồn: http://virgiawanpratama.blogspot.com/2017/10/how-to-install-haproxy-179-with-ssl-on.html)
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:
frontend http_front bind *:80 stats uri /haproxy?stats default_backend http_back frontend https_front bind *:443 ssl crt /etc/ssl/certificate.pem 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 start
Lưu ý: Nếu server có cài đặt Firewall, bạn cần phải mở port 443 trên Firewall để có thể chạy HTTPS.