Sertifika ve Özel Anahtar Eşleştirici — tahmin değil, imza kanıtı
Sertifika ve Özel Anahtar Eşleştirici
Bir sunucunun kullandığı sertifikayı ve onunla birlikte dağıtmak üzere olduğunuz özel anahtarı yapıştırın; bu sayfa dağıtılmış bir sitenin başarısız olduğu soruyu yanıtlar: ikisi aynı anahtar çiftinden mi geldi? Yanıt yalnızca modül uzunluklarından veya parmak izlerinden yapılmış bir tahmin değildir — sayfa sabit bir yanıtı özel anahtarla imzalar ve bu imzayı sertifikanın içindeki açık anahtarla doğrular. Doğrulama geçerse ikisi birbirine aittir; geçmezse yapılandırmayı ne kadar düzenlerseniz düzenleyin çalışmazlar. İki okuma yan yana, algoritma, anahtar boyutu, konu anahtar tanımlayıcı ve açık anahtar parmak iziyle birlikte gösterilir ve yapıştırdığınız hiçbir şey tarayıcıdan çıkmaz.
1. Sertifika veya zincir
İstediğiniz kadar blok yapıştırın. Her sertifika her anahtarla denetlenir; bu yüzden bir zincir artı bir anahtar, o anahtarın zincirdeki hangi sertifikaya ait olduğunu tam olarak söyler — bir sunucunun paketten yanlış sertifikayı sunmasında sık yaşanan bir sürpriz. PEM, çıplak base64 veya onaltılık gövde ve bir PKCS#7 .p7b dosyası okunur; anahtar kesinleşince sertifikanın kendisini sertifika denetleyici denetler.
2. Özel anahtar veya açık anahtar
PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 (BEGIN RSA PRIVATE KEY), SEC1 (BEGIN EC PRIVATE KEY) ve çıplak bir SPKI açık anahtarı (BEGIN PUBLIC KEY) anlaşılır; base64 veya onaltılık olarak yapıştırılmış bir anahtar dosyası da öyle. Şifrelenmiş bir PKCS#8 anahtarı (BEGIN ENCRYPTED PRIVATE KEY) tarayıcı tarafından okunamaz ve bu şekilde bildirilir, parolayı kaldıran komutla birlikte.
henüz bir şey denetlenmedi
Örnek, bu sayfa için yapılmış ve hiçbir şeyi korumayan kendinden imzalı bir sertifika ile ona ait özel anahtardır. Diğer sonucu görmek için anahtarı başka bir anahtarla değiştirin veya özel anahtar yerine açık anahtar bloğunu bırakarak açık anahtar eşleşmesini görün.
Herhangi bir web sayfasına yapıştırılan özel anahtar önce ikinci bir düşünceyi hak eder. Bu sayfa tek bir düz JavaScript dosyasıdır, hiçbir yerden bir şey yüklemez ve hiçbir istek yapmaz; bu yüzden anahtar bu sekmenin içinde okunur, kullanılır ve unutulur. Yine de bu, görebildiğiniz bir ağdan gelen bir garanti değil, okuyabildiğiniz kodun verdiği bir sözdür: üretim anahtarıyla çalışıyorsanız çevrimdışı çalışın ve en güvenli denetimin kendi sunucunuzda aynı openssl komutu olduğunu düşünün. Buraya yapıştırılan bir anahtar asla saklanmaz, bir dosyaya konmaz ve hiçbir yere gönderilmez — dışa aktarma düğmeleri dahil; onlar anahtar hakkındaki bulguları yazar, anahtarın kendisini asla.
İmzalamanın neden yanıt olduğu. İki dosya birbirine benzeyebilir ve yine de uyumsuz olabilir: çoğu kılavuzda RSA anahtarları modülle karşılaştırılır, ama bu yalnızca RSA için çalışır ve bir anahtar doğru modüle sahip olup hasarlı bir üs veya yanlış dolgu taşıyabilir. Bu sayfa çifti bir el sıkışmanın yaptığı gibi kanıtlar — sabit bir yanıtı özel anahtarla imzalar, sertifikadaki açık anahtarla doğrular — bu yüzden karar RSA, ECDSA ve Ed25519 için aynı şekilde geçerlidir. Yalnızca açık yarı yapıştırıldığında açık anahtar baytları sertifikadakilerle karşılaştırılır; bu kimlik açısından eşit derecede kesindir, ama özel yarıyı kimin tuttuğuna dair bir kanıt sağlamaz.
Bir eşleşmenin size söylemediği şeyler. Anahtarın sunucunun gerçekten yüklediği anahtar olduğunu, sertifikanın güvenilir olduğunu, anahtar dosyasının diskte bozulmadığını veya anahtarın başkası tarafından kopyalanmadığını söylemez. Ayrıca istemcinin alacağı sertifika olup olmadığını da söyleyemez, çünkü siteden önce duran bir yük dengeleyici veya CDN farklı bir sertifika sunabilir. Canlı bir sunucunun gerçekte ne sunduğunu denetlemek için openssl s_client -connect example.com:443 -servername example.com -showcerts komutunu çalıştırın ve çıktısını sertifika kutusuna yapıştırın.
Dosyalar nereden gelir. Sertifika, sunucunuzun yapılandırıldığı sertifikadır; ya da bir tarayıcıdan dışa aktarılan veya bir .p7b paketinden alınan sertifikadır. Özel anahtar, web sunucunuzun başlangıçta okuduğu dosyadır; genellikle privkey.pem veya server.key gibi bir şeydir. Anahtarınız şifreliyse önce bir kopyasının şifresini şu komutla çözün: openssl pkcs8 -topk8 -nocrypt -in key.pem -out key-plain.pem, sonra bu dosyayı yapıştırın ve kopyayı silin.
Eşleşme raporu
Henüz bir şey denetlenmedi. Yukarıya bir sertifika ve bir anahtar yapıştırın ve Eşleşip eşleşmediklerini denetleyin'e basın. Karar, arkasındaki kanıtla birlikte burada görünür ve rapor kopyalanabilir ya da kaydedilebilir.
Aynı denetim openssl ile kendi makinenizde
# sertifikanın içindeki açık anahtar openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl sha256 # özel anahtarın içindeki açık anahtar openssl pkey -in key.pem -pubout | openssl pkey -pubin -outform DER | openssl sha256 # iki özet yalnızca çift birlikte aitse eşittir # eski, yalnızca RSA yolu: modülleri karşılaştırın openssl x509 -in cert.pem -noout -modulus | openssl md5 openssl rsa -in key.pem -noout -modulus | openssl md5
Özet karşılaştırması her anahtar türü için çalışır ve bu sayfanın açık anahtar parmak izi olarak raporladığıyla eşleşir; modül karşılaştırması ise yalnızca RSA için vardır. İkisi de özel yarıyı birinin tuttuğunu kanıtlamaz — yukarıdaki imza denetimi kanıtlar, bu yüzden bu sayfa onu kullanır.
Rapor neleri içerir. Karar, ondan çıkan okuma çifti (algoritma, anahtar boyutu, eğri, konu anahtar tanımlayıcı ve sertifika ile anahtar için açık anahtar parmak izi) ve yapılan tam test. Rapor özel anahtarın kendisini asla içermez: anahtar bir imza üretmek için kullanılır ve metne, JSON'a veya panoya yazılmaz. Kopyaladığınız veya kaydettiğiniz şey bir bilete eklenmek için güvenlidir; yapıştırdığınız anahtar değildir ve panonun anahtarın var olduğu tek başka yer olduğunu kabul edin.
Gizlilik: sertifika ve anahtar sekme içinde okunur, hiçbir şey yüklenmez ve sayfa hiç istek yapmaz — bu sayfada hiçbir sorgu veya arama yoktur. Eşleşen bir çift oluşturmak için kendinden imzalı sertifika üreticisini; zaten sahip olduğunuz bir anahtar için sertifika istemek için CSR üreticisini; bir sertifikanın neler içerdiğini okumak için sertifika çözücüyü kullanın.
🔒 SSL ve TLS Araçları
Tamamen tarayıcınızda çalışan sertifika ve anahtar araçları.