Pencocok Sertifikat & Kunci Privat — bukti penandatanganan, bukan tebakan
Pencocok Sertifikat & Kunci Privat
Tempel sertifikat yang digunakan server dan kunci privat yang akan dipasang bersamanya, dan halaman ini menjawab pertanyaan yang sering membuat situs gagal: apakah keduanya berasal dari pasangan kunci yang sama? Jawabannya bukan tebakan dari panjang modulus atau sidik jari saja — halaman ini menandatangani tantangan tetap dengan kunci privat dan memverifikasi tanda tangan itu dengan kunci publik di dalam sertifikat. Jika verifikasi lolos, keduanya termasuk bersama; jika gagal, tidak ada pengeditan konfigurasi yang akan membuatnya berfungsi. Kedua pembacaan ditampilkan berdampingan dengan algoritma, ukuran kunci, identifier kunci subjek, dan sidik jari kunci publik, dan tidak ada yang ditempel yang meninggalkan browser.
1. Sertifikat atau rantai
Tempel blok sebanyak yang diinginkan. Setiap sertifikat diperiksa terhadap setiap kunci, sehingga satu rantai ditambah satu kunci memberi tahu persis sertifikat mana dalam rantai itu yang dimiliki kunci tersebut — kejutan umum pada server yang menyajikan sertifikat yang keliru dari sebuah bundel. PEM, base64 mentah atau badan heksadesimal, dan file .p7b PKCS#7 semuanya dibaca; pemeriksa sertifikat mengaudit sertifikatnya sendiri setelah kuncinya dipastikan.
2. Kunci privat, atau kunci publik
PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 (BEGIN RSA PRIVATE KEY), SEC1 (BEGIN EC PRIVATE KEY), dan kunci publik SPKI mentah (BEGIN PUBLIC KEY) semuanya dipahami, begitu juga file kunci yang ditempel sebagai base64 atau heksadesimal. Kunci PKCS#8 terenkripsi (BEGIN ENCRYPTED PRIVATE KEY) tidak dapat dibaca oleh browser dan dilaporkan demikian, beserta perintah untuk menghapus frasa sandinya.
belum ada yang diperiksa
Contohnya adalah sertifikat self-signed dan kunci privat yang menjadi miliknya, keduanya dibuat untuk halaman ini dan tidak melindungi apa pun. Ganti kunci dengan kunci lain untuk melihat vonis lain, atau hapus blok kunci publik sebagai pengganti kunci privat untuk melihat kecocokan kunci publik.
Kunci privat yang ditempel ke halaman web mana pun perlu dipikirkan ulang terlebih dahulu. Halaman ini adalah satu file JavaScript biasa, tidak memuat apa pun dari tempat lain, dan tidak membuat permintaan, sehingga kunci dibaca, digunakan, dan dilupakan di dalam tab ini. Itu tetap janji yang dibuat oleh kode yang dapat dibaca, bukan jaminan dari jaringan yang dapat dilihat: jika menangani kunci produksi, bekerjalah secara offline, dan anggap bahwa pemeriksaan paling aman adalah perintah openssl yang sama di server sendiri. Kunci yang ditempel di sini tidak pernah disimpan, tidak pernah dimasukkan ke file, dan tidak pernah dikirim ke mana pun — termasuk oleh tombol ekspor, yang menulis temuan tentang kunci dan tidak pernah kuncinya sendiri.
Mengapa penandatanganan adalah jawabannya. Dua file dapat terlihat mirip dan tetap tidak cocok: kunci RSA dibandingkan melalui modulus di sebagian besar panduan, tetapi itu hanya berhasil untuk RSA, dan sebuah kunci dapat memiliki modulus yang benar dengan eksponen rusak atau padding yang salah. Halaman ini membuktikan pasangan dengan cara jabat tangan dilakukan — menandatangani tantangan tetap dengan kunci privat, lalu memverifikasi tanda tangannya dengan kunci publik di sertifikat — sehingga vonisnya berlaku sama untuk RSA, ECDSA, dan Ed25519. Ketika hanya bagian publik yang ditempel, byte kunci publik itu sendiri dibandingkan dengan yang ada di sertifikat, yang sama meyakinkannya untuk identitas, hanya saja tanpa bukti bahwa seseorang memegang bagian privatnya.
Apa yang tidak dikatakan oleh kecocokan. Bahwa kunci itu yang benar-benar dimuat oleh server, bahwa sertifikatnya dipercaya, bahwa file kunci utuh di disk, atau bahwa kunci tidak disalin oleh pihak lain. Halaman ini juga tidak dapat mengatakan apakah sertifikat itulah yang akan diterima klien, karena load balancer atau CDN di depan situs dapat menyajikan sertifikat yang berbeda. Untuk memeriksa apa yang sebenarnya disajikan server aktif, jalankan openssl s_client -connect example.com:443 -servername example.com -showcerts dan tempel keluarannya ke kotak sertifikat.
Dari mana file-file itu berasal. Sertifikat adalah yang dikonfigurasikan pada server, atau yang diekspor dari browser, atau yang diambil dari bundel .p7b. Kunci privat adalah file yang dibaca server web saat dinyalakan, biasanya seperti privkey.pem atau server.key. Jika kunci terenkripsi, dekripsi salinannya terlebih dahulu dengan openssl pkcs8 -topk8 -nocrypt -in key.pem -out key-plain.pem lalu tempel itu, kemudian hapus salinannya.
Laporan kecocokan
Belum ada yang diperiksa. Tempel sertifikat dan kunci di atas lalu tekan Periksa apakah keduanya cocok. Vonisnya muncul di sini beserta bukti di baliknya, dan laporannya dapat disalin atau disimpan.
Pemeriksaan yang sama dengan openssl, di mesin sendiri
# kunci publik di dalam sertifikat
openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl sha256
# kunci publik di dalam kunci privat
openssl pkey -in key.pem -pubout | openssl pkey -pubin -outform DER | openssl sha256
# kedua digest hanya sama jika pasangannya memang milik bersama
# cara lama khusus RSA: bandingkan modulus
openssl x509 -in cert.pem -noout -modulus | openssl md5
openssl rsa -in key.pem -noout -modulus | openssl md5
Perbandingan digest berfungsi untuk setiap jenis kunci dan cocok dengan sidik jari kunci publik yang dilaporkan halaman ini, sedangkan perbandingan modulus hanya ada untuk RSA. Keduanya tidak membuktikan bahwa ada yang memegang bagian privatnya — pemeriksaan penandatanganan di atas yang membuktikannya, itulah sebabnya halaman ini menggunakannya.
Isi laporan. Vonisnya, pasangan pembacaan yang menjadi dasarnya (algoritma, ukuran kunci, kurva, identifier kunci subjek, dan sidik jari kunci publik untuk sertifikat dan untuk kunci), serta tes persis yang dijalankan. Laporan tidak pernah memuat kunci privat itu sendiri: kunci digunakan untuk menghasilkan tanda tangan dan tidak ditulis ke dalam teks, JSON, atau papan klip. Yang disalin atau disimpan aman dilampirkan ke tiket; kunci yang ditempel tidak, dan papan klip hanya boleh dianggap sebagai satu-satunya tempat lain kunci itu pernah ada.
Privasi: sertifikat dan kunci dibaca di dalam tab ini, tidak ada yang diunggah, dan halaman ini sama sekali tidak membuat permintaan — tidak ada probe dan tidak ada pencarian di halaman ini. Untuk membuat pasangan yang cocok, gunakan generator sertifikat self-signed; untuk meminta sertifikat bagi kunci yang sudah dimiliki, gunakan generator CSR; untuk membaca isi sertifikat, gunakan dekoder sertifikat.
🔒 Alat SSL & TLS
Utilitas sertifikat dan kunci yang berjalan sepenuhnya di browser.