HAProxy, TCP ve HTTP uygulamaları için yüksek kullanılabilirlik ve yük dengeleme özellikleri sunan, yaygın olarak kullanılan, güvenilir, yüksek performanslı bir ters proxy’dir. Varsayılan olarak OpenSSL ile derlenir, böylece SSL sonlandırmasını destekler, web sitenizin/uygulama yığınınızın “web giriş sunucunuz” veya uygulama erişim ağ geçidi sunucusu ve istemci uygulamaları arasındaki trafiği şifrelemesini ve şifresini çözmesini sağlar.
Bu yazı, HAporxy’de bir CA SSL sertifikasının nasıl yapılandırılacağını anlatır. Ayrıca, sertifikanızı CA’dan zaten aldığınızı ve sertifikayı bir HAProxy sunucusuna kurmaya ve yapılandırmaya hazır olduğunuzu varsayar.
İhtiyacımız olan dosyalar şunlardır:
- Sertifikanın kendisi.
- Ara sertifikalar ayrıca demetler veya zincirler olarak da adlandırılır ve.
- Varsa kök CA ve.
- Özel anahtar.
PEM biçimli bir SSL Sertifika Dosyası Oluşturun
CA sertifikanızı HAProxy’de yapılandırmadan önce, HAProxy’nin yukarıdaki tüm dosyaların içeriğini aşağıdaki sırayla birleştirilmiş olarak içermesi gereken tek bir .pem dosyası gerektirdiğini anlamanız gerekir:
- .key ile biten özel anahtar (dosyanın başında veya sonunda gelebilir).
- Ardından SSL Sertifikası gelir (genellikle .crt ile biter).
- Ardından CA-Bundle(genellikle .ca-bundle ile biter) ve
- Varsa kök CA.
.pem dosyasını oluşturmak için sertifika dosyalarınızın bulunduğu dizine gidin, örneğin ~/Downloads, ardından cat komutunu şu şekilde çalıştırın (dosya adlarını uygun şekilde değiştirin):
$ cat example.com.key STAR_example_com/STAR_example_com.crt STAR_example_com/STAR_example_com.ca-bundle > example.com.pem
HAProxy’de PEM SSL Sertifikasını Yapılandırma
Ardından, gösterildiği gibi scp komutunu kullanarak yeni oluşturulan .pem sertifika dosyasını HAProxy sunucusuna yükleyin (sırasıyla sysadmin ve 192.168.10.24’ü uzak sunucu kullanıcı adı ve IP adresiyle değiştirin):
$ scp example.com.pem [email protected]:/home/sysadmin/
Ardından, mkdir komutunu kullanarak sertifika .pem dosyasının saklanacağı bir dizin oluşturun ve dosyayı buraya kopyalayın:
$ sudo mkdir -p /etc/ssl/example.com/ $ sudo cp example.com.pem /etc/ssl/example.com/
Ardından, HAProxy yapılandırma dosyanızı açın ve ssl ve crt parametrelerini kullanarak ön uç dinleyici bölümü altında sertifikayı yapılandırın: ilki SSL sonlandırmasını etkinleştirir ve ikincisi sertifika dosyasının konumunu belirtir.
frontend http_frontend mode http bind *:80 bind *:443 ssl crt /etc/ssl/example.com/example.com.pem alpn h2,http/1.1 redirect scheme https code 301 if !{ ssl_fc } default_backend http_servers
SSL/TLS’nin belirli sürümleri, içlerinde bulunan güvenlik açıkları nedeniyle şu anda kullanılması önerilmez. Desteklenen SSL sürümünü sınırlamak için ssl-min-ver parametresini şu şekilde ekleyebilirsiniz:
bind *:443 ssl crt /etc/ssl/example.com/example.com.pem alpn h2,http/1.1 ssl-min-ver TLSv1.2
HAProxy’yi HTTP’yi HTTPS’ye Yönlendirecek Şekilde Yapılandırın
Web sitenize yalnızca HTTPS aracılığıyla erişilebildiğinden emin olmak için, bir kullanıcının HTTP (port 80) üzerinden erişmeye çalışması durumunda tüm HTTP trafiğini HTTPS’ye yeniden yönlendirmek üzere HAProxy’yi etkinleştirmeniz gerekir.
Yukarıdaki yapılandırmaya aşağıdaki satırı ekleyin:
redirect scheme https code 301 if !{ ssl_fc } veya http-request redirect scheme https unless { ssl_fc }
Ön uç bölümünüz şimdi bu örnek yapılandırmadaki gibi görünmelidir:
frontend http_frontend mode http bind *:80 bind *:443 ssl crt /etc/ssl/example.com/example.com.pem alpn h2,http/1.1 ssl-min-ver TLSv1.2 redirect scheme https code 301 if !{ ssl_fc } default_backend http_servers backend http_servers mode http balance roundrobin option httpchk HEAD / http-response set-header X-Frame-Options SAMEORIGIN http-response set-header X-XSS-Protection 1;mode=block http-response set-header X-Content-Type-Options nosniff default-server check maxconn 5000 server http_server1 10.2.1.55:80
Yapılandırma dosyasını kaydedin ve kapatın.
Ardından, aşağıdaki komutu kullanarak sözdiziminin doğru olup olmadığını kontrol edin:
$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c

Yapılandırma dosyası geçerliyse, devam edin ve yapılandırmadaki son değişiklikleri almak için systemctl komutunu kullanarak haproxy hizmetini yeniden yükleyin:
$ sudo systemctl reload haproxy
Son olarak, bir web tarayıcısından web sitenize erişerek tüm kurulumu test edin ve sertifikanın düzgün yüklendiğinden ve tarayıcının “Bağlantının güvenli” olduğunu gösterdiğinden emin olun!

Bu kadar! Bu kılavuzun HAProxy yük dengeleyici yazılımında bir SSL sertifikası yapılandırmanıza yardımcı olduğunu umuyoruz.
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.