V kryptografii veřejného klíče RSA jsou soukromé a veřejné klíče v páru matematicky příbuzné tím, že sdílejí stejný modul. Délka modulu vyjádřená v bitech je délka klíče.
Potvrzení, že se určitý soukromý klíč shoduje s veřejným klíčem obsaženým v žádosti o podpis certifikátu (CSR) a certifikát, je třeba potvrdit, že moduly obou klíčů jsou identické. To lze snadno provést pomocí OpenSSL v systémech Linux / Unix, MacOS nebo Windows (s Windows 10 podsystém Linux or Cygwin), jak následuje:
Chcete-li zobrazit hash md5 modulu soukromého klíče:
$ openssl rsa -noout -modulus -v mykey.key | openssl md5
Chcete-li zobrazit hash md5 modulu CSR:
$ openssl req -noout -modulus -in mycsr.csr | openssl md5
Chcete-li zobrazit hasd md5 modulu certifikátu:
$ openssl x509 -noout -modulus -in mycert.crt | openssl md5
Pokud se shodují všechny tři hashe, CSR, certifikát a soukromý klíč jsou kompatibilní. Můžeš použít diff3
porovnat moduly ze všech tří souborů najednou:
$ openssl req -noout -modulus -in mycsr.csr > csr-mod.txt $ openssl x509 -noout -modulus -in mycert.crt> cert-mod.txt $ openssl rsa -noout -modulus -in mykey.key> privkey-mod.txt $ diff3 csr-mod.txt cert-mod.txt privkey-mod.txt
Pokud jsou všechny tři soubory identické, diff3
nebude produkovat žádný výstup. Pokud chcete porovnat pouze dva soubory (např. Certifikát a soukromý klíč), stačí použít diff
:
$ diff cert-mod.txt privkey-mod.txt
Opět platí, že diff
nebude produkovat žádný výstup, pokud jsou soubory identické.