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 -moduł -w moimcsr.csr | opensl 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:
$ openssl req -noout -moduł -w moimcsr.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 klucz prywatny-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.