I RSA-nøgle-kryptografi er de private og offentlige nøgler i et par matematisk beslægtede, idet de deler den samme modul. Længden på modulet, udtrykt i bits, er nøglelængden.
For at bekræfte, at en bestemt privat nøgle matcher den offentlige nøgle, der er indeholdt i en anmodning om certifikatsignering (CSR) og certifikat, skal man bekræfte, at modulerne for begge taster er identiske. Dette kan gøres ligetil med OpenSSL på Linux / Unix, macOS eller Windows (med Windows 10s Linux-undersystem or Cygwin), som følger:
For at se md5-hash af modulet for den private nøgle:
$ openssl rsa -noout -modulus -i mykey.key | openssl md5
For at se md5-hash i modulet til CSR:
$ openssl req -noout -modulus -in mycsr.csr | openssl md5
Sådan får du vist md5-hash for certifikatets modul:
$ openssl x509 -noout -modul -in mycert.crt | openssl md5
Hvis alle tre hashes matcher, CSR, certifikat og privat nøgle er kompatible. Du kan bruge diff3
for at sammenligne modulerne fra alle tre filer på én gang:
$ 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
Hvis alle tre filer er identiske, diff3
giver ingen output. Hvis du kun ønsker at sammenligne to filer (f.eks. Certifikatet og den private nøgle), kan du bare bruge diff
:
$ diff cert-mod.txt privkey-mod.txt
Igen, diff
producerer ingen output, hvis filerne er identiske.