W kryptografii klucza publicznego RSA klucze prywatne i publiczne w parze są matematycznie powiązane, ponieważ mają ten sam moduł. Długość modułu, wyrażona w bitach, jest długością klucza.
Aby potwierdzić, że określony klucz prywatny jest zgodny z kluczem publicznym zawartym w żądaniu podpisania certyfikatu (CSR) i certyfikat, należy potwierdzić, że moduły obu kluczy są identyczne. Można to zrobić w prosty sposób OpenSSL w systemie Linux / Unix, macOS lub Windows (z Podsystem Linux w systemie Windows 10 or Cygwin), jak następuje:
Aby wyświetlić skrót md5 modułu klucza prywatnego:
$ openssl rsa -noout -modulus -in mykey.key | opensl md5
Aby wyświetlić skrót md5 modułu CSR:
$ openssl req -noout -modulus -in mycsr.csr | openssl md5
Aby wyświetlić skrót md5 modułu certyfikatu:
$ openssl x509 -noout -modulus -in mycert.crt | opensl md5
Jeśli wszystkie trzy skróty są zgodne, CSR, certyfikat i klucz prywatny są kompatybilne. Możesz użyć diff3
aby porównać moduły ze wszystkich trzech plików jednocześnie:
Plik openssl req -noout -modulus -in mycsr.csr > csr-mod.txt Plik openssl x509 -noout -modulus -in mycert.crt > cert-mod.txt Plik openssl rsa -noout -modulus -in mykey.key > privkey-mod.txt Plik diff3 csr-mod.txt Plik cert-mod.txt Plik privkey-mod.txt
Jeśli wszystkie trzy pliki są identyczne, diff3
nie wytworzy żadnego wyniku. Jeśli chcesz porównać tylko dwa pliki (np. Certyfikat i klucz prywatny), możesz po prostu użyć diff
:
$ diff cert-mod.txt privkey-mod.txt
Ponownie, diff
nie wygeneruje danych wyjściowych, jeśli pliki są identyczne.