Bei der RSA-Kryptographie mit öffentlichen Schlüsseln sind der private und der öffentliche Schlüssel in einem Paar mathematisch miteinander verbunden, da sie denselben Modul haben. Die in Bits ausgedrückte Länge des Moduls ist die Schlüssellänge.
Um zu bestätigen, dass ein bestimmter privater Schlüssel mit dem öffentlichen Schlüssel übereinstimmt, der in einer Zertifikatsignierungsanforderung enthalten ist (CSR) und Zertifikat muss bestätigt werden, dass die Module beider Schlüssel identisch sind. Dies ist unkompliziert mit OpenSSL unter Linux / Unix, macOS oder Windows (mit Linux-Subsystem von Windows 10 or Cygwin), wie folgt:
So zeigen Sie den md5-Hash des Moduls des privaten Schlüssels an:
$ openssl rsa -noout -modulus -in mykey.key | openSL MD5
Anzeigen des md5-Hash des Moduls des CSR:
$ openssl req -noout -modulus -in mycsr.csr | openSL MD5
So zeigen Sie den md5-Hash des Moduls des Zertifikats an:
$ openssl x509 -noout -modulus -in mycert.crt | openSL MD5
Wenn alle drei Hashes übereinstimmen, wird die CSR, Zertifikat und privater Schlüssel sind kompatibel. Sie können verwenden diff3
So vergleichen Sie die Module aller drei Dateien gleichzeitig:
$ 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
Wenn alle drei Dateien identisch sind, diff3
erzeugt keine Ausgabe. Wenn Sie nur zwei Dateien vergleichen möchten (z. B. das Zertifikat und den privaten Schlüssel), können Sie einfach verwenden diff
:
$ diff cert-mod.txt privkey-mod.txt
Wiederum diff
erzeugt keine Ausgabe, wenn die Dateien identisch sind.