I RSA-nøkkelkryptografi er de private og offentlige nøklene i et par matematisk relatert ved at de deler den samme modulen. Lengden på modulen, uttrykt i biter, er nøkkellengden.
For å bekrefte at en bestemt privat nøkkel samsvarer med den offentlige nøkkelen i en forespørsel om sertifikatsignering (CSR) og sertifikat, må man bekrefte at modulene til begge tastene er identiske. Dette kan gjøres greit med OpenSSL på Linux / Unix, macOS eller Windows (med Windows 10s Linux-delsystem or Cygwin), som følger:
Slik viser du md5-hash av modulen til den private nøkkelen:
$ openssl rsa -noout -modulus -i mykey.key | openssl md5
For å se md5-hash for modulen til CSR:
$ openssl req -noout -modul -in mycsr.csr | openssl md5
Slik viser du md5-hash til modulet til sertifikatet:
$ openssl x509 -noout -modul -in mycert.crt | openssl md5
Hvis alle tre hasjene stemmer, vil CSR, sertifikat og privat nøkkel er kompatible. Du kan bruke diff3
for å sammenligne modulene fra alle tre filene samtidig:
$ openssl req -noout -modul -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
Hvis alle tre filene er identiske, diff3
produserer ingen utgang. Hvis du bare ønsker å sammenligne to filer (f.eks. Sertifikatet og den private nøkkelen), kan du bare bruke diff
:
$ diff cert-mod.txt privkey-mod.txt
En gang til, diff
vil ikke produsere noe hvis filene er identiske.