Backend'e HTTPS ile bağlanırken backend sertifikasını doğrulayabilir miyim?
Kısa cevap
Evet. Kurum Servisinde SSL Service açıkken Certificate Verification = Required seçilir ve Verification CA Profile alanında sunucunun sertifikasını imzalayan CA seçilir; CA önce Certificates & PKI → Certificate Authorities (CA) ekranına eklenir. CA kaydı seçilmezse Required seçili olsa da doğrulama yapılmaz. Sertifikadaki adın da denetlenmesi için SNI alanı doldurulur (yalnızca HTTP vService'te uygulanır); SNI boşsa yalnızca zincir doğrulanır. Varsayılan None'dır: TR7 trafiği şifreler ama sunucunun kimliğini doğrulamaz. Backend Group'ta aynı alanlar grup düzeyinde bulunur.
Sorun: TR7 Bağlandığı Sunucunun Gerçek Olduğunu Bilmiyor
Doğrulama yapılmadan kurulan TLS bağlantısında trafik şifrelidir, ama TR7 karşısındaki sunucunun gerçekten beklenen sunucu olduğunu denetlemez; araya giren bir cihaz kendi sertifikasıyla bağlantıyı devralabilir. Paylaşımlı ya da güvenilmeyen ağ segmentlerinde, bulut bağlantılarında ya da mevzuat gerektirdiğinde sunucunun sertifikasının doğrulanması gerekir.
Çözüm: İki Yöntem
| Durumunuz | Uygun yöntem |
|---|---|
| Arayüzden (tekil Kurum Servisi ya da Backend Group) | Yöntem 1: Certificate Verification = Required |
| Komut satırından | Yöntem 2: WEB-CLI |
Yöntem 1: Certificate Verification = Required Önerilen
- Nasıl çalışır TR7, sunucunun sunduğu sertifikanın seçilen CA kaydına zincirlendiğini, süresinin geçerli olduğunu ve SNI doluysa sertifikadaki adın SNI değeriyle eşleştiğini denetler; doğrulama başarısız olursa bağlantı kurulmaz. Kurum Servisinin health check'i de kendi CA seçimi yoksa aynı CA ile doğrular.
- Nerede açılırLoad Balancer → Backend Services → Edit → SSL Service → Certificate Verification / Verification CA Profile
- Gereksinim Sunucunun sertifikasını imzalayan CA'nın sertifikası; sunucuda TLS dinleyen port
- vService tipi HTTP, L7 TCP (SNI ile ad denetimi HTTP vService'te)
Adım adım yapılandırma
Certificates & PKI → Certificate Authorities (CA) ekranında Add tıklanır (nasıl eklenir). CA zaten kayıtlıysa 1–3. adımlar atlanır.
CA Name girilir; Operation alanında varsayılan Add a trusted CA certificate bırakılır ve CA Certificate (PEM) alanına sunucu sertifikasını imzalayan CA'nın sertifikası yapıştırılır (Kendi iç CA'mı TR7'ye nasıl tanıtırım?).
Add tıklanır.
Load Balancer → Backend Services ekranında Kurum Servisi seçilip Edit tıklanır. Sunucular bir Backend Group'ta ortak ayarlanıyorsa Load Balancer → Backend Groups ekranında grup seçilip Edit tıklanır; aşağıdaki alanlar gruptaki bütün sunuculara uygulanır.
SSL Service açık olmalıdır (varsayılan kapalı); TLS alanları ancak o zaman görünür. Address alanındaki port sunucunun TLS portudur (SSL bridging nedir; backend'e giden trafiği de nasıl şifrelerim?).
Certificate Verification = Required seçilir (varsayılan None); görünen Verification CA Profile alanında 3. adımdaki CA kaydı seçilir. Alan None bırakılırsa doğrulama yapılmaz.
Sertifikadaki adın da denetlenmesi için SNI alanına sunucu sertifikasındaki ad yazılır (ör. app01.example.local) ya da istemcinin istediği adın gönderilmesi için alanın fx butonuyla Request HTTP header content değişkeni (Header Name = Host) eklenir (Backend'e bağlanırken SNI göndermem gerekiyor; nasıl ayarlarım?). SNI boş kalırsa yalnızca zincir doğrulanır. SNI alanı yalnızca HTTP vService'te uygulanır; L7 TCP vService'te ad denetlenmez.
Formun altındaki Edit tıklanır; ayar Kurum Servisini kullanan bütün vService'lere uygulanır. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
Load Balancer → Backend Services listesinde Kurum Servisinin sağlık durumu ve vService üzerinden gelen yanıtlar kontrol edilir.
Kurum Servisi sağlıklı, sayfa açılıyorDeneme ortamında sunucuya seçilen CA'nın imzalamadığı bir sertifika konur ya da SNI alanına sertifikada olmayan bir ad yazılır.
TR7 sunucuya bağlanamaz; istekler hata alırYöntem 2: WEB-CLI
- Nasıl çalışır SSL Service, doğrulama türü, CA kaydı ve SNI aynı komutta yazılır.
--sslVerifyCayalnızca--sslVerify requiredile, ikisi de yalnızca--sslService trueile kullanılabilir. - Nerede açılır TR7 WEB-CLI →
lb backend update - Gereksinim WEB-CLI erişimi; CA kaydı (Kendi iç CA'mı TR7'ye nasıl tanıtırım?)
- vService tipi HTTP, L7 TCP
Adım adım yapılandırma
<kimlik> yerine Kurum Servisi, <ca> yerine CA kaydı Tab ile seçilir (SSL alanları); komut SSL Service'i de açık tuttuğundan yalnızca TLS dinleyen sunucularda kullanılır:
lb backend update id <kimlik> --sslService true --sslVerify required --sslVerifyCa <ca> --sni app01.example.localDoğrulama
Komut: lb backend show <kimlik>
sslService true · sslVerify required · sslVerifyCa doluSık Yapılan Hatalar
- Required seçip CA kaydı seçmemek. Verification CA Profile seçilmezse doğrulama yapılmaz ve bağlantı yine kurulur; form bu durumda uyarı vermez.
- SNI'yi boş bırakıp adın da denetlendiğini düşünmek. SNI boşken yalnızca sertifikanın CA'ya zincirlendiği denetlenir; aynı CA'nın imzaladığı başka bir sunucunun sertifikası da kabul edilir.
- Yanlış CA seçmek. Geçerli sunucu da doğrulanamaz ve trafik alamaz; seçilen kayıt sunucu sertifikasını gerçekten imzalayan CA (ya da zincirindeki kök) olmalıdır.
- SSL Service açıkken sunucunun doğrulandığını düşünmek. Certificate Verification varsayılan olarak None'dır; yalnızca şifreleme yapılır.
- Kurum Servisi formundan CA eklemeye çalışmak. Verification CA Profile seçicisi yalnızca Certificate Authorities (CA) ekranındaki kayıtları listeler; CA önce o ekranda eklenir.
Dokümantasyonda nasıl yapılır
