Nasıl çalışır
X.509 sertifikası, bir açık anahtarı bir adla (bir alan adı, bir kişi veya bir kuruluş) bağlayan imzalı bir belgedir. Sunucular arasında ve dosyalarda taşınan, onun ikili biçimidir (DER); kopyalanıp yapıştırılan ise aynı yapının BEGIN CERTIFICATE ve END CERTIFICATE satırları arasındaki Base64 hâlidir, yani PEM biçimi. İçinde bir konu, bir düzenleyen, bir geçerlilik süresi, açık anahtar ve sertifikanın ne için kullanıldığını ve iptal edilip edilmediğinin nereden sorgulanacağını belirten uzantılar bulunur.
Araç; sertifikaları, PKCS#10 imzalama isteklerini (CSR), PKCS#8, PKCS#1 ve SEC1 özel anahtarlarını, açık anahtarları, PKCS#7 paketlerini (.p7b) ve PKCS#12 dosyalarını (.pfx, .p12) tanır. Birden fazla bloğu birlikte yapıştırırsanız zinciri son kullanıcı sertifikasından köke doğru sıralar, her imzayı düzenleyenin anahtarıyla doğrular ve hangisinin hangisine ait olduğunu söylemek için özel anahtarı her sertifika ve her CSR ile karşılaştırır.
Ayrıca biçimler arasında dönüştürme yapar, sertifika ve anahtardan IIS ile Azure'un istediği .pfx dosyasını hazırlar ve özel anahtarıyla birlikte yeni bir CSR ya da testler için kendinden imzalı bir sertifika oluşturur. Her şey tarayıcınızın kriptografi API'siyle yapılır: ne sertifikalar ne de anahtarlar bir sunucuya gönderilir.
Örnekler
ISRG Root X1 · SHA-25696:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6Let's Encrypt kök sertifikasının SHA-256 parmak izi. Sertifika yetkilisinin ve güven depolarının yayımladığı değer budur: elinizdeki dosyanın parmak izi bununla eşleşiyorsa, tam olarak o sertifikadır.ISRG Root X1 · pin SPKIC5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=Açık anahtarın Base64 biçimindeki SHA-256 değeri. Android ağ güvenliği yapılandırmasındaki pin-sha256 alanına veya bir uygulamadaki certificate pinning ayarına yazılan değer budur ve anahtar yeniden kullanılırsa sertifika yenilendiğinde değişmez.root.crt + intermediate.crt + server.crtserver.crt + intermediate.crt + root.crtnginx ve HAProxy, dosyadaki ilk sertifikayı sunucu sertifikası olarak kabul eder. Zincir ters sıradaysa nginx, özel anahtarı kök sertifikayla karşılaştırdığı için key values mismatch hatası verir.openssl pkcs12 -in viejo.pfx -legacy -nodes | openssl pkcs12 -export -out nuevo.pfxPBES2 · AES-256-CBC · MAC SHA-256Eski Windows sürümlerinin veya OpenSSL 1.x'in dışa aktardığı .pfx dosyaları, tarayıcıların desteklemediği RC2 ve 3DES ile şifrelenir. Bu komut onları, OpenSSL 3'ün varsayılan olarak kullandığı biçim olan AES ile yeniden şifreler.Kullanım senaryoları
- Sertifika yetkilisinin gönderdiği sertifikayı kurmadan önce tüm alan adlarını (SAN) kapsadığını ve bitiş tarihinin beklendiği gibi olduğunu kontrol etmek.
- Sunucuda kalmış özel anahtarlardan hangisinin hangi sertifikaya ait olduğunu OpenSSL ile modülleri karşılaştırmadan bulmak.
- Bir istemcinin sitenize neden güvenmediğini bulmak: eksik bir ara sertifika, sırası bozuk bir zincir veya SHA-1 ile imzalanmış bir sertifika.
- Sertifika satın almak veya yenilemek için anahtarı kendi bilgisayarınızda oluşturarak CSR üretmek; sunucuda yapmayı tercih ederseniz eşdeğer OpenSSL komutu da hazır.
- Bir .crt ve .key dosyasını IIS, Azure App Service veya bir Java keystore için .pfx'e dönüştürmek ya da nginx için bir .pfx'ten sertifikayı ve anahtarı çıkarmak.
- Bir mobil uygulamada certificate pinning yapılandırmak veya bir istemci sertifikasını doğrulamak için sertifikanın parmak izini ya da SPKI pinini almak.
Sık sorulan sorular
Özel anahtarımı buraya yapıştırmak güvenli mi?
Anahtar, tarayıcınızın içinde Web Crypto API ile işlenir ve hiçbir sunucuya gönderilmez; bunu geliştirici araçlarının Ağ sekmesinden doğrulayabilirsiniz. Yine de iyi uygulama, her üretim anahtarına bir sır gibi davranmaktır: yalnızca güvendiğiniz araçlara yapıştırın ve işiniz bitince sekmeyi kapatın.
PEM, DER, CRT, CER, P7B ve PFX arasındaki fark nedir?
DER, sertifikanın ikili hâlidir; PEM ise aynı ikili verinin BEGIN ve END satırları arasındaki Base64 hâlidir. .crt ve .cer uzantıları biçimi belirtmez: ikisinden herhangi birini içerebilirler. .p7b, birden fazla sertifika içeren ve hiç anahtar içermeyen bir PKCS#7 paketidir. .pfx veya .p12 ise bir PKCS#12 dosyasıdır: sertifikayı, ara sertifikaları ve özel anahtarı parolayla şifrelenmiş olarak bir arada saklar.
Sunucumda ara sertifikanın eksik olup olmadığını nasıl anlarım?
Sunucuda yapılandırılmış olanı yapıştırın. Zincir kendinden imzalı olmayan bir sertifikayla bitiyorsa bir halka eksiktir: o sertifikanın Authority Information Access uzantısında, CA Issuers altında genellikle düzenleyeni indirme adresi bulunur. Masaüstü tarayıcılar bazen onu kendileri bulur, ancak Android, curl ve kütüphanelerin çoğu bulmaz; bu yüzden hata yalnızca bazı istemcilerde görülür.
Genel bir TLS sertifikası en fazla ne kadar geçerli olabilir?
Eylül 2020'den beri tarayıcılar 398 günden uzun sertifikaları reddediyor. CA/Browser Forum, 2025'te azami süreyi aşamalı olarak düşürmeyi onayladı: 15 Mart 2026'dan itibaren düzenlenenler için 200 gün, Mart 2027'den itibaren 100 gün ve Mart 2029'dan itibaren 47 gün. Bu yüzden yenilemeyi ACME ile otomatikleştirmek iyi olur. Şirketlerin dahili CA'ları bu sınıra tabi değildir.
CSR için RSA mı, ECDSA mı?
ECDSA P-256, çok daha küçük anahtar ve imzalarla 3072 bitlik RSA'ya denk bir güvenlik sunar ve sunucu el sıkışmayı daha hızlı yapar. Güncel tüm tarayıcılar ve sistemler bunu destekler. Çok eski istemcileriniz, gömülü cihazlarınız veya yalnızca RSA kabul eden bir sisteminiz varsa RSA 2048 güvenli seçenek olmaya devam eder.
Alan adını ortak ada (CN) yazmak yeterli mi?
Hayır. 2017'deki Chrome 58'den beri tarayıcılar yalnızca alternatif adlara (SAN) bakar ve CN yok sayılır. Sertifikanın kullanılacağı her alan adı, CN'deki de dahil, SAN listesinde yer almalıdır. *.example.com gibi bir joker karakter yalnızca tek bir seviyeyi kapsar: www.example.com için geçerlidir, ancak example.com veya a.b.example.com için geçerli değildir.