In RSA public-key cryptografie zijn de private en publieke sleutels in een paar wiskundig gerelateerd doordat ze dezelfde modulus delen. De lengte van de modulus, uitgedrukt in bits, is de sleutellengte.
Om te bevestigen dat een bepaalde privésleutel overeenkomt met de openbare sleutel in een certificaatondertekeningsverzoek (CSR) en certificaat, moet men bevestigen dat de moduli van beide sleutels identiek zijn. Dit kan eenvoudig worden gedaan met OpenSSL op Linux / Unix, macOS of Windows (met Het Linux-subsysteem van Windows 10 or Cygwin), als volgt:
Om de md5-hash van de modulus van de privésleutel te bekijken:
$ openssl rsa -noout -modulus -in mijnsleutel.sleutel | openssl md5
Om de md5-hash van de modulus van de te bekijken CSR:
$ openssl req -noout -modulus -in mijncsr.csr | openssl md5
Om de md5-hash van de modulus van het certificaat te bekijken:
$ openssl x509 -noout -modulus -in mijncert.crt | openssl md5
Als alle drie de hashes overeenkomen, is de CSR, certificaat en privésleutel zijn compatibel. Je kunt gebruiken diff3
om de moduli van alle drie de bestanden tegelijk te vergelijken:
$ openssl req -noout -modulus -in mijncsr.csr > csr-mod.txt $ openssl x509 -noout -modulus -in mijncert.crt > cert-mod.txt $ openssl rsa -noout -modulus -in mijnkey.key > privkey-mod.txt $ diff3 csr-mod.txt cert-mod.txt privkey-mod.txt
Als alle drie de bestanden identiek zijn, diff3
produceert geen uitvoer. Als u slechts twee bestanden wilt vergelijken (bijv. Het certificaat en de privésleutel), kunt u dit gewoon gebruiken diff
:
$ diff cert-mod.txt privkey-mod.txt
Nogmaals, diff
produceert geen uitvoer als de bestanden identiek zijn.