HAProxy - SSL Sertifikası Ekleme
HAProxy kendisine gelen SSL isteklerini de karşılayabilmektedir. Bu istekleri backend
servislerine doğru aktarmak için frontend
servislerinde doğru tanımların yapılması gerekmektedir.
HAProxy konfigürasyon dosyasını aşağıdaki gibi güncelliyoruz.
> sudo vi /etc/haproxy/haproxy.conf
...
##################################################
# Frontend #
##################################################
frontend https_in
mode http
bind *:443 ssl crt /etc/haproxy/certificates/certificate-cert-key.pem
...
default_backend be_default
##################################################
##################################################
# Backend #
##################################################
backend be_default
mode http
errorfile 503 /etc/haproxy/errors/503.http
##################################################
...
Bu ayar sayesinde artık 443 portundan gelen SSL isteklerini istediğiniz backend
servisine aktarabilirsiniz. Konfigürasyonu doğrulamadan önce sertifikanın belirttiğiniz yerde olmasını sağlamamız gerekiyor. HAProxy hem public hem de private key'in aynı dosyada peş peşe olmasını istiyor. Bunun için aşağıdaki komutları çalıştırabilirsiniz.
Ben bu işlemleri yaparken hep elimde pfx uzantılı sertifika dosyası oluyordu. Eğer sizin elinizde farklı formatlarda varsa mutlaka pem formatına ayarlamanız gerekecek.
> sudo su
$ openssl pkcs12 -in certificate.pfx -nocerts -out certificate_priv.pem -nodes
$ openssl pkcs12 -in certificate.pfx -nokeys -out certificate_public.pem -nodes
$ cat certificate_public.pem certificate_priv.pem > certificate-cert-key.pem
$ mv certificate-cert-key.pem /etc/haproxy/certificates/certificate-cert-key.pem
Bu ayar uygulanmadan önce doğruluğu kontrol edilmeli ve sonrasında servisler güncellenerek yayına alınmalıdır.
Eğer cluster bir yapınız varsa iki makinede de aynı geliştirmenin yapılması gerekmektedir.
sudo /opt/haproxy/sbin/haproxy -c -V -f /etc/haproxy/haproxy.conf
sudo systemctl reload haproxy