Hướng dẫn cài đặt chứng thư số SSL cho HAProxy

Ngày đăng: 2019-07-03 10:49:08 | Cập nhật: 2020-03-19 14:40:27

Để 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 thư số gồm 2 file là: certificate.cer và intermediate.cer (hoặc cabundle.cer). 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.

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.

Sau khi cài đặt thành công, bạn có thể kiểm tra lại cert đã được install đúng hay chưa bằng công cụ sau: https://ssltools.digicert.com/checker/views/checkInstallation.jsp