MTLS (Mutual TLS) İçin Sertifika, Keystore ve Truststore Oluşturma
keytool komutlarını çalıştırmak için Java’nın yüklü olduğu path içinde olmanız veya Java’nın bin dizininin ortam değişkenlerinizde tanımlı olması gerekir gerekir.Gizli anahtarların doğru oluşturulabilmesi için Java’nın 1.8.400 sürümünden sonrasını kullanmanız tavsiye edilmektedir.
Adım 1: CA Sertifikası ve Anahtarı Oluşturma
CA sertifikası, hem istemci hem de sunucu sertifikalarını imzalamak için kullanılır. Bu, her iki tarafın da birbirini doğrulamasını sağlar. CA private key oluşturca-key.pem: CA private keyca-cert.pem: CA sertifikası
Adım 2: Sunucu İçin Keystore ve Sertifika Oluşturma
Sunucu, istemci tarafından doğrulanabilmesi için kendi sertifikasına ihtiyaç duyar. Bu sertifika, CA tarafından imzalanmalıdır. Sunucu private key ve CSR oluşturserver-key.pem: Sunucu private keyserver.csr: Sunucu CSRserver-cert.pem: Sunucu sertifikasıserver-keystore.pfx: Sunucu keystore dosyası (PFX formatında)
Adım 3: İstemci İçin Keystore ve Sertifika Oluşturma
İstemci, sunucu tarafından doğrulanabilmesi için kendi sertifikasına ihtiyaç duyar. Bu sertifika, CA tarafından imzalanmalıdır. İstemci private key ve CSR oluşturclient-key.pem: İstemci private keyclient.csr: İstemci CSRclient-cert.pem: İstemci sertifikasıclient-keystore.pfx: İstemci keystore dosyası (PFX formatında)
Adım 4: TrustStore Oluşturma
TrustStore, karşı tarafın sertifikalarını doğrulamak için kullanılır. Hem sunucu hem de istemci tarafında CA sertifikasının bulunması gereklidir. CA sertifikasını sunucu truststore’a import et (Daha önce bu işlemi yaptıysanız bu adımı atlayabilirsiniz. Bu işlem bir kez sunucu tarafında yapılacaktır her bir istemci için tekrarlamayınız! )server-truststore.pfx: Sunucu truststore dosyası (PFX formatında)client-truststore.pfx: İstemci truststore dosyası (PFX formatında)
Özet
“Bu adımlar sonucunda elimizde aşağıdaki dosyalar oluştu:” CA Tarafında, “istemci ve sunucu sertifikalarını imzalamak için kullanılacak şu dosyalar oluştu:”ca-key.pem: CA private keyca-cert.pem: CA sertifikası
server-key.pem: Sunucu private keyserver.csr: Sunucu CSRserver-cert.pem: Sunucu sertifikasıserver-keystore.pfx: Sunucu keystore dosyası (PFX formatında)server-truststore.pfx: Sunucu truststore dosyası (PFX formatında)
client-key.pem: İstemci private keyclient.csr: İstemci CSRclient-cert.pem: İstemci sertifikasıclient-keystore.pfx: İstemci keystore dosyası (PFX formatında)client-truststore.pfx: İstemci truststore dosyası (PFX formatında)
İstemci Sertifikasının Apinizer için Ayarlanması
Bu işlemler bittikten sonra İstemcinin sertifikasının Apinizer’da doğrulanması için user-truststore.pfx dosyası oluşturulur ve KeyStores ekranından Apinizer’a eklenir..p12 ve .pfx uzantıları, aslında aynı dosya formatını belirtir - PKCS#12. PKCS#12, genellikle bir sunucu sertifikası, ilişkili özel anahtar ve isteğe bağlı olarak herhangi bir ara sertifikaları içeren bir dosya formatıdır..pfx genellikle Windows platformunda kullanılırken, .p12 genellikle Unix veya Linux tabanlı sistemlerde kullanılır. Ancak, bu iki dosya uzantısı arasında bir fark yoktur ve bir uzantıyı diğerine dönüştürmek için herhangi bir işlem yapmanız gerekmez.
- p12 formatının jks’ye çevrimi için aşağıdaki komut kullanılabilir:
- jks formatının pfx/p12’ye çevrimi için aşağıdaki komut kullanılabilir:
Oluşturulan User Truststore’un Apinizer’a Yüklenmesi
Key Stores ekranından Oluştur (Create) butonuna tıklanır.



Apinizer Environments Üzerinde Gerekli Ayarların Yapılması
mTLS politikasının kullanılabilmesi için Apinizer Environment’s üzerinde SSL Offloading yapılmalı ve mTLS seçeneği seçili olmalıdır. Bunun için Gateway Environment’ın deployment ayarları üzerinde HTTPS Enabled seçeneği ve onunla birlikte gelen mTLS seçenekleri aktifleştirilir.


API Proxy’ye mTLS Kimlik Doğrulama Politikasının Eklenmesi
API Proxy’nin Geliştirme (Develop) sekmesinden Politika Ekle (Add Policy) linkine tıklanır.


mTLS Ayarları hakkında detaylı bilgi için tıklayınız.
Kimlik Bilgisi’nin mTLS Ayarları
Kimlik bilgisinin kullanıcı adı bilgisi, istemcinin sahip olduğu sertifika içerisinde yer alan “issuer” değerindeki “cn name” bilgisi ile aynı olmalıdır. Kimlik bilgisinin API Proxy ACL sekmesine, mTLS politikası eklenmiş olan API Proxy eklenmelidir. Kimlik bilgisinin mTLS Ayarları sekmesine aşağıdaki görselde olduğu gibi truststore eklenir:

