Certificaat- & privésleutelvergelijker — ondertekeningsbewijs, geen gok
Certificaat- & privésleutelvergelijker
Plak het certificaat dat een server gebruikt en de privésleutel die u er tegelijk mee gaat uitrollen, en deze pagina beantwoordt de vraag waar een live site op faalt: kwamen de twee uit hetzelfde sleutelpaar? Het antwoord is geen gok op basis van de lengte van de modulus of vingerafdrukken alleen — de pagina ondertekent een vaste uitdaging met de privésleutel en verifieert die handtekening met de publieke sleutel in het certificaat. Slaagt de verificatie, dan horen de twee bij elkaar; mislukt die, dan krijgt u de configuratie niet werkend door er verder aan te knoeien. Beide metingen worden naast elkaar getoond met het algoritme, de sleutellengte, de identificatie van de onderwerpssleutel en de vingerafdruk van de publieke sleutel, en niets van wat u plakt verlaat de browser.
1. Certificaat of keten
Plak zoveel blokken als u wilt. Elk certificaat wordt tegen elke sleutel gecontroleerd, dus een keten plus één sleutel vertelt u precies bij welk certificaat in de keten die sleutel hoort — een veelvoorkomende verrassing op een server die het verkeerde certificaat uit een bundel serveert. PEM, kale base64 of een hexadecimale inhoud en een PKCS#7-bestand .p7b worden allemaal gelezen; de certificaatcontrole controleert het certificaat zelf zodra de sleutel vaststaat.
2. Privésleutel, of de publieke sleutel
PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 (BEGIN RSA PRIVATE KEY), SEC1 (BEGIN EC PRIVATE KEY) en een kale SPKI-publieke sleutel (BEGIN PUBLIC KEY) worden allemaal begrepen, net als een sleutelbestand dat als base64 of hexadecimaal is geplakt. Een versleutelde PKCS#8-sleutel (BEGIN ENCRYPTED PRIVATE KEY) kan door een browser niet worden gelezen en wordt als zodanig gemeld, met het commando dat de wachtzin verwijdert.
nog niets gecontroleerd
Het voorbeeld is een zelfondertekend certificaat en de bijbehorende privésleutel, beide voor deze pagina gemaakt en zonder enige beveiliging. Vervang de sleutel door een andere sleutel om het andere oordeel te zien, of laat het publieke sleutelblok in plaats van de privésleutel staan om de overeenkomst van de publieke sleutel te zien.
Plak een privésleutel nooit zonder eerst na te denken op een webpagina. Deze pagina is één bestand met gewoon JavaScript, laadt niets van ergens en doet geen enkel verzoek, dus de sleutel wordt gelezen, gebruikt en vergeten binnen dit tabblad. Dat is nog steeds een belofte van code die u kunt lezen, en geen garantie van een netwerk dat u kunt zien: werkt u met een productiesleutel, werk dan offline, en overweeg dat de veiligste controle hetzelfde openssl-commando op uw eigen server is. Een hier geplakte sleutel wordt nooit opgeslagen, nooit in een bestand gezet en nergens naartoe gestuurd — ook niet door de exportknoppen, die bevindingen over de sleutel schrijven en nooit de sleutel zelf.
Waarom ondertekenen het antwoord is. Twee bestanden kunnen op elkaar lijken en toch niet bij elkaar horen: RSA-sleutels worden in de meeste handleidingen vergeleken op de modulus, maar dat werkt alleen voor RSA, en een sleutel kan de juiste modulus hebben met een beschadigde exponent of een verkeerde opvulling. Deze pagina bewijst het paar zoals een handdruk dat doet — onderteken een vaste uitdaging met de privésleutel, verifieer die met de publieke sleutel in het certificaat — zodat het oordeel geldt voor RSA, ECDSA en Ed25519 gelijkelijk. Wanneer alleen de publieke helft is geplakt, worden de bytes van de publieke sleutel zelf vergeleken met die in het certificaat, wat even doorslaggevend is voor identiteit, maar zonder bewijs dat iemand de privéhelft bezit.
Wat een overeenkomst u niet vertelt. Dat de sleutel de sleutel is die de server daadwerkelijk laadt, dat het certificaat vertrouwd is, dat het sleutelbestand op schijf intact is, of dat de sleutel niet door iemand anders is gekopieerd. Het kan ook niet zeggen of het certificaat het certificaat is dat een client ontvangt, want een load balancer of een CDN voor de site kan een ander certificaat serveren. Om te controleren wat een live server werkelijk aanbiedt, voert u openssl s_client -connect example.com:443 -servername example.com -showcerts uit en plakt u die uitvoer in het certificaatvak.
Waar de bestanden vandaan komen. Het certificaat is wat uw server geconfigureerd heeft, of het certificaat dat uit een browser is geëxporteerd of uit een .p7b-bundel is gehaald. De privésleutel is het bestand dat uw webserver bij het opstarten leest, meestal iets als privkey.pem of server.key. Als uw sleutel versleuteld is, ontsleutel dan eerst een kopie met openssl pkcs8 -topk8 -nocrypt -in key.pem -out key-plain.pem, plak die en verwijder daarna de kopie.
Overeenkomstrapport
Nog niets gecontroleerd. Plak hierboven een certificaat en een sleutel en druk op Controleren of ze overeenkomen. Het oordeel verschijnt hier met het bewijs erachter, en het rapport kan worden gekopieerd of opgeslagen.
Dezelfde controle met openssl, op uw eigen machine
# publieke sleutel in het certificaat openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl sha256 # publieke sleutel in de privésleutel openssl pkey -in key.pem -pubout | openssl pkey -pubin -outform DER | openssl sha256 # de twee digests zijn alleen gelijk wanneer het paar bij elkaar hoort # de oudere manier die alleen voor RSA werkt: vergelijk de moduli openssl x509 -in cert.pem -noout -modulus | openssl md5 openssl rsa -in key.pem -noout -modulus | openssl md5
De digestvergelijking werkt voor elk sleuteltype en komt overeen met wat deze pagina als vingerafdruk van de publieke sleutel meldt, terwijl de modulusvergelijking alleen voor RSA bestaat. Geen van beide bewijst dat iemand de privéhelft bezit — de ondertekeningscontrole hierboven doet dat, en daarom gebruikt deze pagina die.
Wat het rapport bevat. Het oordeel, het paar van metingen waaruit het is voortgekomen (algoritme, sleutellengte, curve, identificatie van de onderwerpssleutel en vingerafdruk van de publieke sleutel voor het certificaat en voor de sleutel), en de exacte test die is uitgevoerd. Het rapport bevat de privésleutel zelf nooit: de sleutel wordt gebruikt om een handtekening te maken en wordt niet in de tekst, de JSON of het klembord geschreven. Wat u kopieert of opslaat is veilig om aan een ticket toe te voegen; de sleutel die u plakte is dat niet, en het klembord is de enige andere plek waar hij ooit heeft bestaan.
Privacy: het certificaat en de sleutel worden in het tabblad gelezen, er wordt niets geüpload, en de pagina doet helemaal geen verzoek — er is geen test en geen opzoeking op deze pagina. Om een bijpassend paar te maken, gebruikt u de generator voor zelfondertekende certificaten; om een certificaat aan te vragen voor een sleutel die u al hebt, gebruikt u de CSR-generator; om te lezen wat een certificaat bevat, gebruikt u de certificaatdecoder.
🔒 SSL- & TLS-tools
Certificaat- en sleututilities die volledig in uw browser draaien.