Extended Key Usage (EKU) uzantısı, sertifikanın hangi protokol ve senaryolarda kullanılabileceğini OID'lerle belirtir. Bir TLS sunucusu sertifikasında serverAuth (1.3.6.1.5.5.7.3.1) bulunmalıdır. Mutual TLS (karşılıklı kimlik doğrulama) kullanan istemciler için ise clientAuth (1.3.6.1.5.5.7.3.2) gerekir. Uyumsuzlukta OpenSSL unsuitable certificate purpose hatası verebilir.
Belirtiler
- mTLS bağlantısında istemci sertifikası sunucu tarafından reddediliyor.
- Sunucu sertifikası istemci sertifikası olarak kullanılıyor ya da tersi.
- Java tarafında
extended key usage does not permit use for TLS client authenticationbenzeri bir mesaj. - Uygulama, belirli bir EKU (örneğin e-posta korumalı, kod imzalama) gerektiriyor.
EKU'yu inceleme
openssl x509 -in sertifika.crt -noout -ext extendedKeyUsage
Örnek çıktı: TLS Web Server Authentication, TLS Web Client Authentication. Sertifikada EKU uzantısı hiç yoksa kısıtlama yok sayılır; uzantı varsa yalnızca listelenen amaçlar geçerlidir. Zincirdeki ara sertifikada EKU kısıtı varsa, leaf sertifika da bu kısıtın içinde kalmalıdır.
Çözüm
- Hangi tarafın hangi EKU'yu beklediğini belirleyin (sunucu mu, istemci mi?).
- mTLS için yalnızca istemci kimlik doğrulamaya uygun, doğru EKU'lu bir sertifika kullanın. Kamuya açık CA'lar TLS sunucu sertifikalarında istemci kimlik doğrulama EKU'sunu zamanla kaldırma yönünde bir eğilim gösterdiği için, bu senaryoda sertifika kaynağınızın güncel politikasını mutlaka doğrulayın; mTLS için genellikle kurum içi CA daha uygundur.
- Kurum içi CA'da doğru şablonla yeni bir sertifika düzenleyin.
- Yeni sertifikayı kurup iki taraflı bağlantıyı yeniden deneyin.
İpucu
Bir sertifikayı tek amaç için tasarlayın; çok amaçlı sertifikalar hem güvenlik riskini hem de uyumsuzluk ihtimalini artırır. Web siteniz için uygun sertifikayı SSL sertifikaları arasından seçebilir, sonucu SSL kontrol aracıyla test edebilirsiniz.