Parmak izi (fingerprint), sertifikanın DER biçimli halinin hash özetidir. İki sertifikanın aynı olup olmadığını, bir sertifikayı sabitlemeyi (pinning) ya da panelde gösterilen değeri doğrulamayı kolaylaştırır.
Parmak izi nedir, ne değildir?
- Sertifikanın içeriğine bağlıdır; aynı alan adı için yenilenen sertifikada değişir.
- Seri numarasından farklıdır; seri numarası CA'nın verdiği kimliktir, parmak izi ise özet değeridir.
- SHA-256 tercih edilmelidir; SHA-1 eski bir yöntemdir ve yeni doğrulamalarda önerilmez.
OpenSSL ile
openssl x509 -in sertifika.crt -noout -fingerprint -sha256
# Sunucudan doğrudan
openssl s_client -connect ornek.com:443 -servername ornek.com </dev/null 2>/dev/null \
| openssl x509 -noout -fingerprint -sha256
Windows'ta
certutil -hashfile sertifika.cer SHA256
certutil -dump sertifika.cer
Sertifika yöneticisinde (certmgr.msc) sertifikayı açıp Details > Thumbprint alanında SHA-1 parmak izini de görebilirsiniz; IIS binding gibi yerlerde bu değer kullanılır.
Java keystore'da
keytool -list -v -keystore anahtar.jks
Çıktıda SHA-256 parmak izi yer alır.
Karşılaştırma için dikkat
- İki değeri karşılaştırırken aynı hash algoritmasını kullandığınızdan emin olun.
- İki nokta üst üste ve büyük-küçük harf farkı içerik farkı değildir.
- Değer eşleşmezse sunucu beklediğinizden farklı sertifika sunuyor olabilir (eski sertifika, yanlış sanal sunucu, CDN).
Yenileme sonrası parmak izi değişeceği için, sabitlenmiş (pinned) yapılarda yenilemeden önce yeni değeri dağıtmak gerekir. Sertifikanın dışarıdan görünen halini SSL kontrol aracıyla kıyaslayabilir, yeni sertifika için SSL sertifikalarına bakabilirsiniz.