İstemci sertifikasıyla kimlik doğrulama (mTLS) yapabilir miyim?
Kısa cevap
Evet. İstemci sertifikalarını imzalayan CA, Certificates & PKI → Certificate Authorities (CA) ekranına eklenir; bir TLS Security Profile'da Client Certificate Authentication (mTLS) açılır, Client Certificate Verification Type (Required ya da Optional) ve CA Certificate Files seçilir; profil vService'in Details panelindeki SSL Security modülünde seçilir. HTTP ve L7 TCP vService'lerde çalışır. İstemci sertifikaları TR7'nin dahili CA'sıyla Client Certificates ekranında da üretilebilir. TR7'nin Kurum Servisine kendi sertifikasını sunması ise ayrı bir ayardır (Client Certificate Presented to Backend (mTLS)).
Temel Bilgi
mTLS (mutual TLS), TLS el sıkışmasında sunucunun yanı sıra istemcinin de bir sertifikayla kimliğini kanıtlamasıdır. Sunucu istemciden sertifika ister; istemcinin sunduğu sertifika, sunucunun güvendiği CA'lardan birine zincirlenmiyor, süresi dolmuş ya da imzası geçersizse bağlantı el sıkışma aşamasında reddedilir. Parola tabanlı doğrulamadan önce, uygulamaya henüz ulaşılmadan uygulanır.
Sorun: Yalnızca Tanınan Cihazlar ve Kullanıcılar Bağlanabilmeli
Yönetim arayüzleri, iş ortağı API'leri ya da kurumsal uygulamalar yalnızca kurumun sertifika verdiği istemcilere açılmak istenebilir. Bağlantının daha TLS el sıkışmasında istemci sertifikasıyla doğrulanması gerekir.
Çözüm: Üç Yöntem
Yöntem 1 ve 2 aynı mTLS profilini kullanır; fark, istemci sertifikalarını imzalayan CA'nın nereden geldiğidir. Yöntem 3, Yöntem 1'in komut satırı karşılığıdır.
| Durumunuz | Uygun yöntem |
|---|---|
| İstemci sertifikaları kurumsal ya da ticari bir CA'dan geliyor | Yöntem 1: CA kaydı + TLS Security Profile |
| İstemci sertifikalarını da TR7 üretsin | Yöntem 2: TR7 dahili CA ile istemci sertifikası |
| Komut satırından | Yöntem 3: WEB-CLI |
Yöntem 1: CA Kaydı + TLS Security Profile Önerilen
- Nasıl çalışır TR7, istemcinin sunduğu sertifikayı profilde seçilen CA kayıtlarıyla doğrular. Required seçiliyse sertifikası olmayan ya da doğrulanamayan istemci el sıkışmada reddedilir; Optional seçiliyse sertifikasız istemci de bağlanır, sertifika sunulduysa doğrulanır.
- Nerede açılırCertificates & PKI → Certificate Authorities (CA) · TLS Security Profiles → Client Certificate Verification (mTLS) — Frontend
- Gereksinim İstemci sertifikalarını imzalayan CA'nın sertifikası; vService'te şifreli frontend
- vService tipi HTTP, L7 TCP
Adım adım yapılandırma
Sol alttaki TR7 logosuyla Configuration Menu açılır; Certificates & PKI → Certificate Authorities (CA) ekranında Add tıklanır (nasıl eklenir).
CA Name girilir; Operation alanında varsayılan Add a trusted CA certificate bırakılır ve CA Certificate (PEM) alanına istemci sertifikalarını imzalayan CA'nın sertifikası yapıştırılır. Ara CA varsa o da ayrı bir kayıt olarak eklenebilir.
Add tıklanır.
Certificates & PKI → TLS Security Profiles ekranında Add tıklanır (nasıl eklenir) ya da vService'te kullanılan profil seçilip Edit tıklanır; yeni profilde Security Profile Name girilir.
Client Certificate Verification (mTLS) — Frontend bölümünde Client Certificate Authentication (mTLS) anahtarı açılır (varsayılan kapalı). Client Certificate Verification Type varsayılan olarak Required'dır; sertifikasız istemcilere de izin verilecekse Optional seçilir. CA Certificate Files alanında 3. adımdaki CA kaydı seçilir (en az bir kayıt zorunlu). CA Verification Error Strategy varsayılan Deny All Errors bırakılır.
Formun altındaki Add (ya da Edit) tıklanır. CA listesi değiştirildiğinde profili kullanan vService'ler yeniden başlatılır.
Load Balancer → Load Balancer vService List ekranında vService seçilip Edit tıklanır.
En az bir frontend satırında şifreli protokol (HTTP vService'te Encrypted (HTTPS), L7 TCP'de TCP + TLS) ve Certificate seçiliyken Details panelinde Frontend Settings altındaki SSL Security kutusu işaretlenir ve profil seçilir (vService'te profil seçimi).
Save tıklanı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
Sertifika sunmadan bağlanılır.
Komut: curl -sk https://www.example.com/
Required: el sıkışma hatası · Optional: yanıt alınırCA'nın imzaladığı istemci sertifikası ve anahtarıyla bağlanılır.
Komut: curl -sk --cert client.crt --key client.key https://www.example.com/
Uygulamanın yanıtı (ör. 200)Yöntem 2: TR7 Dahili CA ile İstemci Sertifikası
- Nasıl çalışır Kök CA ve istemci kullanımlı bir ara (issuing) CA TR7'de oluşturulur; istemci sertifikaları bu CA ile Client Certificates ekranında üretilir ve aynı CA, mTLS profilinin CA Certificate Files alanında seçilir. Üretilen sertifikalara Client Authentication kullanımı kendiliğinden eklenir.
- Nerede açılırCertificates & PKI → Certificate Authorities (CA) · Certificate Profiles · Client Certificates
- Gereksinim Yok
- vService tipi HTTP, L7 TCP
Adım adım yapılandırma
Certificates & PKI → Certificate Authorities (CA) ekranında Add tıklanır.
CA Name girilir; Operation = Create Root CA seçilir ve Common Name (CN) girilir (Key Algorithm varsayılan RSA 4096, Lifetime (days) varsayılan 3650).
Add tıklanır.
Aynı ekranda yeniden Add tıklanır.
CA Name girilir; Operation = Create Issuing CA, Usage = Client Certificates (varsayılan Server Certificates), Parent CA = 3. adımdaki kök CA seçilir ve Common Name (CN) girilir.
Add tıklanır.
Client / mTLS kullanımlı bir sertifika profili yoksa Certificates & PKI → Certificate Profiles ekranında Add tıklanır (nasıl eklenir).
Profile Name girilir; Usage = Client / mTLS seçilir (varsayılan TLS Server; bu kullanımdaki profiller Client Certificates ekranında listelenmez). Lifetime (days) (varsayılan 365) ve Key Algorithm (varsayılan RSA 2048) belirlenir.
Add tıklanır.
Certificates & PKI → Client Certificates ekranında Add tıklanır.
Certificate Name girilir; How to Add = Issue from an internal CA (varsayılan) bırakılır. Issuing CA alanında 6. adımdaki CA, Certificate Profile alanında Client / mTLS profili seçilir; Person or Device (CN) ve gerekiyorsa E-mail Addresses, Windows Logon Names (UPN) girilir. Sertifika istemciye dağıtılacaksa Allow Download açılır.
Add tıklanır; sertifika üretilir. Allow Download açıksa sertifika anahtarıyla birlikte PFX olarak indirilip istemciye kurulur. Her istemci için 10–12. adımlar tekrarlanır.
Yöntem 1'in 4–9. adımları uygulanır; CA Certificate Files alanında 6. adımdaki issuing CA seçilir.
Doğrulama
İndirilen PFX ile bağlanılır.
Komut: curl -sk --cert-type P12 --cert istemci.pfx:parola https://www.example.com/
Bağlantı kabul edilir; sertifikasız istek reddedilirYöntem 3: WEB-CLI
- Nasıl çalışır CA kaydı, mTLS profili ve vService ataması komut satırından yapılır. WEB-CLI her satırı ayrı komut olarak çalıştırdığı için CA sertifikası çok satırlı PEM yerine tek satırlık Base64 (DER) olarak verilir; TR7 bunu kayıt sırasında PEM'e çevirir.
- Nerede açılır TR7 WEB-CLI →
lb ca add·lb ssl-security add·lb service update - Gereksinim WEB-CLI erişimi; CA sertifikasının tek satırlık Base64 hâli
- vService tipi HTTP, L7 TCP
Adım adım yapılandırma
Yönetici bilgisayarında PEM dosyası satır sonu içermeyen Base64'e çevrilir:
openssl x509 -in istemci-ca.pem -outform DER | base64 -w0<base64> yerine 1. adımın çıktısı yapıştırılır (lb ca add):
lb ca add name istemci-ca --content <base64>Sürüm ve cipher da açıkça yazılır; --caFiles.0 2. adımdaki CA adını alır:
lb ssl-security add name mtls --minSslVersion TLSv1.2 --cipherAlgorithm general --clientCertAuth true --clientCertVerifyType required --caFiles.0 istemci-ca --caErrorStrategy denyAll--sslSecurity vService'in profilini bu profille değiştirir:
lb service update id <vService> --sslSecurity mtlsDoğrulama
Profil görüntülenir; ardından Yöntem 1'deki sertifikasız ve sertifikalı bağlantı denenir.
Komut: lb ssl-security show mtls
clientCertAuth true · caFiles.0 istemci-caSık Yapılan Hatalar
- Client Certificate Presented to Backend (mTLS) alanıyla karıştırmak. Kurum Servisindeki bu alan TR7'nin sunucuya kendini tanıtırken sunduğu sertifikadır; istemcileri doğrulayan ayar TLS Security Profile'daki mTLS bölümüdür.
- Ignore All Errors ile süresi dolmuş istemci sertifikalarının kabul edileceğini düşünmek. CA Verification Error Strategy yalnızca zincirdeki CA sertifikalarının doğrulama hatalarını yok sayar; istemci sertifikasının kendi hataları (süre dolması gibi) bağlantıyı yine reddettirir. Ignore All Errors yalnızca deneme amaçlı kullanılır.
- İptal (CRL) kontrolü beklemek. Profilde iptal listesi alanı yoktur; bir istemcinin erişimini kaldırmak için ilgili CA kaydı profilden çıkarılır ya da istemci bir koşul ve Block aksiyonuyla engellenir.
- CA seçmeden profili kaydetmek. CA Certificate Files alanında en az bir kayıt seçilmeden form kaydedilmez.
- Profili vService'te seçmemek. mTLS profili vService'te SSL Security kutusu işaretlenip seçilmedikçe uygulanmaz.
Dokümantasyonda nasıl yapılır
